From 917ba4673a501053a8442cc889749262806b6ddb Mon Sep 17 00:00:00 2001 From: sage Date: Fri, 28 Apr 2006 22:35:18 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@749 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/osdc/Filer.h | 50 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 44 insertions(+), 6 deletions(-) diff --git a/ceph/osdc/Filer.h b/ceph/osdc/Filer.h index 00b1b72e37977..f31e46b45052c 100644 --- a/ceph/osdc/Filer.h +++ b/ceph/osdc/Filer.h @@ -44,29 +44,36 @@ using namespace __gnu_cxx; class Context; class Messenger; class OSDMap; +class ObjectCacher; /**** Filer interface ***/ class Filer { //: public Dispatcher { Objecter *objecter; + ObjectCacher *oc; public: - Filer(Objecter *o) : objecter(o) {} + Filer(Objecter *o, ObjectCacher *c=0) : objecter(o), oc(c) {} ~Filer() {} bool is_active() { - return objecter->is_active(); + return objecter->is_active(); // || (oc && oc->is_active()); } - // ** async file interface ** + /*** async file interface ***/ int read(inode_t& inode, size_t len, off_t offset, bufferlist *bl, // ptr to data Context *onfinish) { Objecter::OSDRead *rd = prepare_read(inode, len, offset, bl); - return objecter->readx(rd, onfinish); + if (oc == 0) { + return objecter->readx(rd, onfinish); + } else { + // use cache + return 0; + } } int write(inode_t& inode, @@ -77,7 +84,12 @@ class Filer { //: public Dispatcher { Context *onack, Context *oncommit) { Objecter::OSDWrite *wr = prepare_write(inode, len, offset, bl); - return objecter->writex(wr, onack, oncommit); + if (oc == 0) { + return objecter->writex(wr, onack, oncommit); + } else { + // use cache + return 0; + } } int zero(inode_t& inode, @@ -86,10 +98,36 @@ class Filer { //: public Dispatcher { Context *onack, Context *oncommit) { Objecter::OSDZero *z = prepare_zero(inode, len, offset); - return objecter->zerox(z, onack, oncommit); + if (oc == 0) { + return objecter->zerox(z, onack, oncommit); + } else { + // mds should never do this, and clients don't do zero(). + assert(0); + return 0; + } } + /*** sync+blocking file interface ***/ + + int atomic_sync_read(inode_t& inode, + size_t len, off_t offset, + bufferlist& bl) { + return 0; + } + + int atomic_sync_write(inode_t& inode, + size_t len, off_t offset, + bufferlist& bl, + Context *oncommit) { + return 0; + } + + + + + + /***** mapping *****/ /* map (ino, ono) to an object name -- 2.39.5