]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
*** empty log message ***
authorsage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Tue, 31 Jan 2006 21:14:42 +0000 (21:14 +0000)
committersage <sage@29311d96-e01e-0410-9327-a35deaab8ce9>
Tue, 31 Jan 2006 21:14:42 +0000 (21:14 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@582 29311d96-e01e-0410-9327-a35deaab8ce9

ceph/osd/Fake.h [new file with mode: 0644]
ceph/osd/FakeStore.cc
ceph/osd/FakeStore.h
ceph/osd/OBFSStore.cc
ceph/osd/OBFSStore.h

diff --git a/ceph/osd/Fake.h b/ceph/osd/Fake.h
new file mode 100644 (file)
index 0000000..cd0b9b1
--- /dev/null
@@ -0,0 +1,262 @@
+
+
+class FakeStoreCollections {
+ private:
+  Mutex lock;
+  hash_map<coll_t, set<object_t> > fakecollections;
+
+ public:
+  // faked collections
+  int list_collections(list<coll_t>& ls) {
+       lock.Lock();
+       int r = 0;
+       for (hash_map< coll_t, set<object_t> >::iterator p = fakecollections.begin();
+                p != fakecollections.end();
+                p++) {
+         r++;
+         ls.push_back(p->first);
+       }
+       lock.Unlock();
+       return r;
+  }
+
+  int create_collection(coll_t c) {
+       lock.Lock();
+       fakecollections[c].size();
+       lock.Unlock();
+       return 0;
+  }
+
+  int destroy_collection(coll_t c) {
+       int r = 0;
+       lock.Lock();
+       if (fakecollections.count(c)) {
+         fakecollections.erase(c);
+         fakecattr.erase(c);
+       } else 
+         r = -1;
+       lock.Unlock();
+       return r;
+  }
+
+  int collection_stat(coll_t c, struct stat *st) {
+       return collection_exists(c) ? 0:-1;
+  }
+
+  bool collection_exists(coll_t c) {
+       lock.Lock();
+       int r = fakecollections.count(c);
+       lock.Unlock();
+       return r;
+  }
+
+  int collection_add(coll_t c, object_t o) {
+       lock.Lock();
+       fakecollections[c].insert(o);
+       lock.Unlock();
+       return 0;
+  }
+
+  int collection_remove(coll_t c, object_t o) {
+       lock.Lock();
+       fakecollections[c].erase(o);
+       lock.Unlock();
+       return 0;
+  }
+
+  int collection_list(coll_t c, list<object_t>& o) {
+       lock.Lock();
+       int r = 0;
+       for (set<object_t>::iterator p = fakecollections[c].begin();
+                p != collectsion[c].end();
+                p++) {
+         o.push_back(*p);
+         r++;
+       }
+       lock.Unlock();
+       return r;
+  }
+
+};
+
+class FakeStoreAttrs {
+ private:
+  
+  class FakeAttrSet {
+  public:
+       map<const char*, bufferptr> attrs;
+       
+       int getattr(const char *name, void *value, size_t size) {
+         if (attrs.count(name)) {
+               size_t l = attrs[name].length();
+               if (l > size) l = size;
+               bufferlist bl;
+               bl.append(attrs[name]);
+               bl.copy(0, l, (char*)value);
+               return l;
+         }
+         return -1;
+       }
+       
+       int setattr(const char *name, void *value, size_t size) {
+         bufferptr bp(new buffer((char*)value,size));
+         attrs[name] = bp;
+         return 0;
+       }
+       
+       int listattr(char *attrs, size_t size) {
+         assert(0);
+       }
+       
+       bool empty() { return attrs.empty(); }
+  };
+
+  Mutex lock;
+  hash_map<object_t, FakeAttrSet> fakeoattrs;
+  hash_map<object_t, FakeAttrSet> fakecattrs;
+
+
+ public:
+  // faked attrs
+  int setattr(object_t oid, const char *name,
+                         void *value, size_t size) {
+       lock.Lock();
+       int r = fakeoattrs[oid].setattr(name, value, size);
+       lock.Unlock();
+       return r;
+  }
+  int getattr(object_t oid, const char *name,
+                         void *value, size_t size) {
+       lock.Lock();
+       int r = fakeoattrs[oid].getattr(name, value, size);
+       lock.Unlock();
+       return r;
+  }
+  int listattr(object_t oid, char *attrs, size_t size) {
+       lock.Lock();
+       int r = fakeoattrs[oid].listattr(attrs,size);
+       lock.Unlock();
+       return r;
+  }
+
+
+  int collection_setattr(coll_t c, const char *name,
+                                                void *value, size_t size) {
+       lock.Lock();
+       int r = fakecattrs[cid].setattr(name, value, size);
+       lock.Unlock();
+       return r;
+  }
+  int collection_getattr(coll_t c, const char *name,
+                                                void *value, size_t size) {
+       lock.Lock();
+       int r = fakecattrs[cid].getattr(name, value, size);
+       lock.Unlock();
+       return r;
+  }
+  int collection_listattr(coll_t c, char *attrs, size_t size) {
+       lock.Lock();
+       int r = fakecattrs[cid].listattr(attrs,size);
+       lock.Unlock();
+       return r;
+  }
+
+};
+
+
+
+int OBFSStore::list_collections(list<coll_t>& ls)
+{
+  lock.Lock();
+  int r = 0;
+  for (hash_map< coll_t, set<object_t> >::iterator p = fakecollections.begin();
+          p != fakecollections.end();
+          p++) {
+       r++;
+       ls.push_back(p->first);
+  }
+  lock.Unlock();
+  return r;
+}
+
+int OBFSStore::create_collection(coll_t c)
+{
+  lock.Lock();
+  fakecollections[c].size();
+  lock.Unlock();
+  return 0;
+}
+
+int OBFSStore::destroy_collection(coll_t c)
+{
+
+}
+
+int OBFSStore::collection_stat(coll_t c, struct stat *st)
+{
+
+}
+
+bool OBFSStore::collection_exists(coll_t c) 
+{
+  lock.Lock();
+  int r = fakecollections.count(c);
+  lock.Unlock();
+  return r;
+}
+
+int OBFSStore::collection_add(coll_t c, object_t o) 
+{
+  lock.Lock();
+  fakecollections[c].insert(o);
+  lock.Unlock();
+  return 0;
+}
+
+int OBFSStore::collection_remove(coll_t c, object_t o)
+{
+  lock.Lock();
+  fakecollections[c].erase(o);
+  lock.Unlock();
+  return 0;
+}
+
+int OBFSStore::collection_list(coll_t c, list<object_t>& o)
+{
+  lock.Lock();
+  int r = 0;
+  for (set<object_t>::iterator p = fakecollections[c].begin();
+          p != collectsion[c].end();
+          p++) {
+       o.push_back(*p);
+       r++;
+  }
+  lock.Unlock();
+  return r;
+}
+
+int OBFSStore::collection_setattr(coll_t c, const char *name,
+                                                                 void *value, size_t size)
+{
+  lock.Lock();
+  int r = fakecattr[c].setattr(name, value, size);
+  lock.Unlock();
+  return r;
+}
+
+int OBFSStore::collection_getattr(coll_t c, const char *name,
+                                                                 void *value, size_t size)
+{
+  lock.Lock();
+  int r = fakecattr[c].getattr(name,value,size);
+  lock.Unlock();
+  return r;
+}
+
+int OBFSStore::collection_listattr(coll_t c, char *attrs, size_t size)
+{
+  lock.Lock();
+  int r = fakecattr[c].listattr(attrs,size);
+  lock.Unlock();
+  return r;
+}
index 3bc3544a4be39548bbf16b72e97a6cc452839c34..388261d29787e7988a8a3ddf6fbeb7ba2f11d643 100644 (file)
@@ -368,6 +368,8 @@ int FakeStore::write(object_t oid,
 // ------------------
 // attributes
 
+
+/*
 int FakeStore::setattr(object_t oid, const char *name,
                                           void *value, size_t size)
 {
@@ -418,7 +420,7 @@ int FakeStore::listattr(object_t oid, char *attrs, size_t size)
        return listxattr(fn.c_str(), attrs, size);
   }
 }
-
+*/
 
 
 
@@ -551,6 +553,7 @@ int FakeStore::collection_list(coll_t c, list<object_t>& o) {
   return 0;
 }
 
+/*
 int FakeStore::collection_setattr(coll_t cid, const char *name,
                                                                  void *value, size_t size)
 {
@@ -603,4 +606,4 @@ int FakeStore::collection_listattr(coll_t cid, char *attrs, size_t size)
   return r;
 }
 
-
+*/
index 418e40a7b378ee07b3c03d0e4eb64a3666f8b6b4..42b27fca7dc6f471547e8d8385b82abb688c5514 100644 (file)
@@ -15,44 +15,11 @@ using namespace __gnu_cxx;
 // fake attributes in memory, if we need to.
 
 
-class FakeStore : public ObjectStore {
+class FakeStore : public ObjectStore, public FakeAttrs {
   string basedir;
   int whoami;
 
 
-  class FakeAttrSet {
-  public:
-       map<const char*, bufferptr> attrs;
-       
-       int getattr(const char *name, void *value, size_t size) {
-         if (attrs.count(name)) {
-               size_t l = attrs[name].length();
-               if (l > size) l = size;
-               bufferlist bl;
-               bl.append(attrs[name]);
-               bl.copy(0, l, (char*)value);
-               return l;
-         }
-         return -1;
-       }
-       
-       int setattr(const char *name, void *value, size_t size) {
-         bufferptr bp(new buffer((char*)value,size));
-         attrs[name] = bp;
-         return 0;
-       }
-       
-       int listattr(char *attrs, size_t size) {
-         assert(0);
-       }
-       
-       bool empty() { return attrs.empty(); }
-  };
-
-  Mutex lock;
-  hash_map<object_t, FakeAttrSet> fakeoattrs;
-  hash_map<object_t, FakeAttrSet> fakecattrs;
-
   // fns
   void get_dir(string& dir);
   void get_oname(object_t oid, string& fn);
@@ -99,12 +66,13 @@ class FakeStore : public ObjectStore {
                        bufferlist& bl, 
                        Context *onsafe);
 
+  /*
   int setattr(object_t oid, const char *name,
                                void *value, size_t size);
   int getattr(object_t oid, const char *name,
                          void *value, size_t size);
   int listattr(object_t oid, char *attrs, size_t size);
-
+  */
 
   // -------------------
   // collections
@@ -130,12 +98,13 @@ class FakeStore : public ObjectStore {
   int collection_remove(coll_t c, object_t o);
   int collection_list(coll_t c, list<object_t>& o);
 
+  /*
   int collection_setattr(coll_t c, const char *name,
                                                 void *value, size_t size);
   int collection_getattr(coll_t c, const char *name,
                                                 void *value, size_t size);
   int collection_listattr(coll_t c, char *attrs, size_t size);
-  
+  */
 
 };
 
index 3262ad4c99964bb52bca23b50e2ab3e4eb8d0848..dce4f6d9f3a82b6b0253105adf632a4315a54d39 100644 (file)
@@ -183,136 +183,3 @@ int OBFSStore::write(object_t oid, size_t len,
 
 
 
-// ------------------
-// attributes
-
-int OBFSStore::setattr(object_t oid, const char *name,
-                                          void *value, size_t size)
-{
-  lock.Lock();
-  int r = fakeoattrs[oid].setattr(name, value, size);
-  lock.Unlock();
-  return r;
-}
-
-
-int OBFSStore::getattr(object_t oid, const char *name,
-                                          void *value, size_t size)
-{
-  lock.Lock();
-  int r = fakeoattrs[oid].getattr(name, value, size);
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::listattr(object_t oid, char *attrs, size_t size)
-{
-  lock.Lock();
-  int r = fakeoattrs[oid].listattr(attrs,size);
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::list_collections(list<coll_t>& ls)
-{
-  lock.Lock();
-  int r = 0;
-  for (hash_map< coll_t, set<object_t> >::iterator p = fakecollections.begin();
-          p != fakecollections.end();
-          p++) {
-       r++;
-       ls.push_back(p->first);
-  }
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::create_collection(coll_t c)
-{
-  lock.Lock();
-  fakecollections[c].size();
-  lock.Unlock();
-  return 0;
-}
-
-int OBFSStore::destroy_collection(coll_t c)
-{
-  int r = 0;
-  lock.Lock();
-  if (fakecollections.count(c)) {
-       fakecollections.erase(c);
-       fakecattr.erase(c);
-  } else 
-       r = -1;
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::collection_stat(coll_t c, struct stat *st)
-{
-
-}
-
-bool OBFSStore::collection_exists(coll_t c) 
-{
-  lock.Lock();
-  int r = fakecollections.count(c);
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::collection_add(coll_t c, object_t o) 
-{
-  lock.Lock();
-  fakecollections[c].insert(o);
-  lock.Unlock();
-  return 0;
-}
-
-int OBFSStore::collection_remove(coll_t c, object_t o)
-{
-  lock.Lock();
-  fakecollections[c].erase(o);
-  lock.Unlock();
-  return 0;
-}
-
-int OBFSStore::collection_list(coll_t c, list<object_t>& o)
-{
-  lock.Lock();
-  int r = 0;
-  for (set<object_t>::iterator p = fakecollections[c].begin();
-          p != collectsion[c].end();
-          p++) {
-       o.push_back(*p);
-       r++;
-  }
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::collection_setattr(coll_t c, const char *name,
-                                                                 void *value, size_t size)
-{
-  lock.Lock();
-  int r = fakecattr[c].setattr(name, value, size);
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::collection_getattr(coll_t c, const char *name,
-                                                                 void *value, size_t size)
-{
-  lock.Lock();
-  int r = fakecattr[c].getattr(name,value,size);
-  lock.Unlock();
-  return r;
-}
-
-int OBFSStore::collection_listattr(coll_t c, char *attrs, size_t size)
-{
-  lock.Lock();
-  int r = fakecattr[c].listattr(attrs,size);
-  lock.Unlock();
-  return r;
-}
index f588c807039c9c73b8ab63179e8760400eecaeed..786e5dadbfdea337f86dcc083c7ad26bd11df0bf 100644 (file)
@@ -3,42 +3,11 @@
 #define _OBFSSTORE_H_
 
 #include "ObjectStore.h"
+#include "Fake.h"
 
-class OBFSStore : public ObjectStore {
-
-  class FakeAttrSet {
-  public:
-       map<const char*, bufferptr> attrs;
-       
-       int getattr(const char *name, void *value, size_t size) {
-         if (attrs.count(name)) {
-               size_t l = attrs[name].length();
-               if (l > size) l = size;
-               bufferlist bl;
-               bl.append(attrs[name]);
-               bl.copy(0, l, (char*)value);
-               return l;
-         }
-         return -1;
-       }
-       
-       int setattr(const char *name, void *value, size_t size) {
-         bufferptr bp(new buffer((char*)value,size));
-         attrs[name] = bp;
-         return 0;
-       }
-       
-       int listattr(char *attrs, size_t size) {
-         assert(0);
-       }
-       
-       bool empty() { return attrs.empty(); }
-  };
-
-  Mutex lock;
-  hash_map<object_t, FakeAttrSet> fakeoattrs;
-  hash_map<object_t, FakeAttrSet> fakecattrs;
-  hash_map<coll_t, set<object_t> > fakecollections;
+class OBFSStore : public ObjectStore, 
+  public FakeAttrs, 
+  public FakeCollections {
 
   int  whoami;
   int  bdev_id;
@@ -65,31 +34,6 @@ class OBFSStore : public ObjectStore {
                        off_t offset,char *buffer,
                        bool fsync);
   
-  // faked attrs
-  int setattr(object_t oid, const char *name,
-                               void *value, size_t size);
-  int getattr(object_t oid, const char *name,
-                         void *value, size_t size);
-  int listattr(object_t oid, char *attrs, size_t size);
-
-
-  // faked collections
-  int list_collections(list<coll_t>& ls);
-  int create_collection(coll_t c);
-  int destroy_collection(coll_t c);
-  int collection_stat(coll_t c, struct stat *st);
-  bool collection_exists(coll_t c);
-  int collection_add(coll_t c, object_t o);
-  int collection_remove(coll_t c, object_t o);
-  int collection_list(coll_t c, list<object_t>& o);
-
-  int collection_setattr(coll_t c, const char *name,
-                                                void *value, size_t size);
-  int collection_getattr(coll_t c, const char *name,
-                                                void *value, size_t size);
-  int collection_listattr(coll_t c, char *attrs, size_t size);
-
-  
 };
 
 #endif