]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/mds/MDSTable.h
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / mds / MDSTable.h
index 3b62a123fb214256dfe92b753b733674052b58a8..6ad52b2092913550a6146bdfdcbb8b08a390b554 100644 (file)
 #include "mds_table_types.h"
 #include "include/buffer_fwd.h"
 
+#include "MDSContext.h"
+
 class MDSRank;
-class Context;
-class MDSInternalContextBase;
 
 class MDSTable {
 public:
   MDSRank *mds;
 protected:
-  const char *table_name;
+  std::string table_name;
   bool per_mds;
   mds_rank_t rank;
 
-  object_t get_object_name() const;
   
   static const int STATE_UNDEF   = 0;
   static const int STATE_OPENING = 1;
@@ -41,10 +40,10 @@ protected:
   
   version_t version, committing_version, committed_version, projected_version;
   
-  map<version_t, list<MDSInternalContextBase*> > waitfor_save;
+  map<version_t, MDSContext::vec > waitfor_save;
   
 public:
-  MDSTable(MDSRank *m, const char *n, bool is_per_mds) :
+  MDSTable(MDSRank *m, std::string_view n, bool is_per_mds) :
     mds(m), table_name(n), per_mds(is_per_mds), rank(MDS_RANK_NONE),
     state(STATE_UNDEF),
     version(0), committing_version(0), committed_version(0), projected_version(0) {}
@@ -73,19 +72,20 @@ public:
   bool is_opening() const { return state == STATE_OPENING; }
 
   void reset();
-  void save(MDSInternalContextBase *onfinish=0, version_t need=0);
+  void save(MDSContext *onfinish=0, version_t need=0);
   void save_2(int r, version_t v);
 
   void shutdown() {
     if (is_active()) save(0);
   }
 
-  void load(MDSInternalContextBase *onfinish);
+  object_t get_object_name() const;
+  void load(MDSContext *onfinish);
   void load_2(int, bufferlist&, Context *onfinish);
 
   // child must overload these
   virtual void reset_state() = 0;
-  virtual void decode_state(bufferlist::iterator& p) = 0;
+  virtual void decode_state(bufferlist::const_iterator& p) = 0;
   virtual void encode_state(bufferlist& bl) const = 0;
 
   friend class C_IO_MT_Load;