From 4f7526a785692795ee29f7101b8b18482b4c6e11 Mon Sep 17 00:00:00 2001 From: David Zafman Date: Mon, 23 Sep 2013 13:02:16 -0700 Subject: Temporary collection_list* funcs in ObjectStore to do ghobject_t to hobject_t conversion Signed-off-by: David Zafman --- src/os/ObjectStore.cc | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/os/ObjectStore.h | 10 ++++++++++ 2 files changed, 55 insertions(+) diff --git a/src/os/ObjectStore.cc b/src/os/ObjectStore.cc index 97c858b6773..84549821aff 100644 --- a/src/os/ObjectStore.cc +++ b/src/os/ObjectStore.cc @@ -15,6 +15,7 @@ #include #include "ObjectStore.h" #include "common/Formatter.h" +#include "FileStore.h" ostream& operator<<(ostream& out, const ObjectStore::Sequencer& s) { @@ -497,3 +498,47 @@ void ObjectStore::Transaction::generate_test_instances(list& o) +{ + vector go; + FileStore *fs = dynamic_cast(this); + int ret = fs->collection_list(c, go); + if (ret == 0) { + o.reserve(go.size()); + for (vector::iterator i = go.begin(); i != go.end() ; i++) + o.push_back(i->hobj); + } + return ret; +} + +int ObjectStore::collection_list_partial(coll_t c, hobject_t start, + int min, int max, snapid_t snap, + vector *ls, hobject_t *next) +{ + vector go; + ghobject_t gnext, gstart(start); + FileStore *fs = dynamic_cast(this); + int ret = fs->collection_list_partial(c, gstart, min, max, snap, &go, &gnext); + if (ret == 0) { + *next = gnext.hobj; + ls->reserve(go.size()); + for (vector::iterator i = go.begin(); i != go.end() ; i++) + ls->push_back(i->hobj); + } + return ret; +} + +int ObjectStore::collection_list_range(coll_t c, hobject_t start, hobject_t end, + snapid_t seq, vector *ls) +{ + vector go; + ghobject_t gstart(start), gend(end); + FileStore *fs = dynamic_cast(this); + int ret = fs->collection_list_range(c, gstart, gend, seq, &go); + if (ret == 0) { + ls->reserve(go.size()); + for (vector::iterator i = go.begin(); i != go.end() ; i++) + ls->push_back(i->hobj); + } + return ret; +} diff --git a/src/os/ObjectStore.h b/src/os/ObjectStore.h index aea12c2aa2c..07473b344f5 100644 --- a/src/os/ObjectStore.h +++ b/src/os/ObjectStore.h @@ -950,6 +950,16 @@ public: virtual int collection_list_range(coll_t c, ghobject_t start, ghobject_t end, snapid_t seq, vector *ls) = 0; + //TODO: Remove + int collection_list(coll_t c, vector& o); + + int collection_list_partial(coll_t c, hobject_t start, + int min, int max, snapid_t snap, + vector *ls, hobject_t *next); + + int collection_list_range(coll_t c, hobject_t start, hobject_t end, + snapid_t seq, vector *ls); + /// OMAP /// Get omap contents virtual int omap_get( -- cgit v1.2.1