Renamed a method that isn't part of the public interface of unmarshall
[invirt/third/libt4.git] / config.h
index 9d7b023..73940a0 100644 (file)
--- a/config.h
+++ b/config.h
@@ -1,54 +1,50 @@
 #ifndef config_h
 #define config_h
 
-#include <string>
-#include <vector>
+#include "types.h"
 #include "paxos.h"
 
 class config_view_change {
- public:
-  virtual void commit_change(unsigned vid) = 0;
-  virtual ~config_view_change() {};
+    public:
+        virtual void commit_change(unsigned view_id) = 0;
+        virtual ~config_view_change() {}
 };
 
 class config : public paxos_change {
- private:
-  acceptor *acc;
-  proposer *pro;
-  rpcs *pxsrpc;
-  unsigned myvid;
-  std::string first;
-  std::string me;
-  config_view_change *vc;
-  std::vector<std::string> mems;
-  pthread_mutex_t cfg_mutex;
-  pthread_cond_t heartbeat_cond;
-  pthread_cond_t config_cond;
-  paxos_protocol::status heartbeat(std::string m, unsigned instance, int &r);
-  std::string value(std::vector<std::string> mems);
-  std::vector<std::string> members(std::string v);
-  std::vector<std::string> get_view_wo(unsigned instance);
-  bool remove_wo(std::string);
-  void reconstruct();
-  typedef enum {
-    OK,        // response and same view #
-    VIEWERR,   // response but different view #
-    FAILURE,   // no response
-  } heartbeat_t;
-  heartbeat_t doheartbeat(std::string m);
- public:
-  config(std::string _first, std::string _me, config_view_change *_vc);
-  unsigned vid() { return myvid; }
-  std::string myaddr() { return me; };
-  std::string dump() { return acc->dump(); };
-  std::vector<std::string> get_view(unsigned instance);
-  void restore(std::string s);
-  bool add(std::string, unsigned vid);
-  bool ismember(std::string m, unsigned vid);
-  void heartbeater(void);
-  void paxos_commit(unsigned instance, std::string v);
-  rpcs *get_rpcs() { return acc->get_rpcs(); }
-  void breakpoint(int b) { pro->breakpoint(b); }
+    private:
+        unsigned my_view_id;
+        string first;
+        string me;
+        config_view_change *vc;
+        proposer_acceptor paxos;
+        vector<string> mems;
+        mutex cfg_mutex;
+        cond config_cond;
+        paxos_protocol::status heartbeat(int &r, string m, unsigned instance);
+        string value(const vector<string> &mems) const;
+        vector<string> members(const string &v) const;
+        void get_view(unsigned instance, vector<string> &m, lock &cfg_mutex_lock);
+        bool remove(const string &, lock &cfg_mutex_lock);
+        void reconstruct(lock &cfg_mutex_lock);
+        typedef enum {
+            OK, // response and same view #
+            VIEWERR, // response but different view #
+            FAILURE, // no response
+        } heartbeat_t;
+        heartbeat_t doheartbeat(const string &m, lock &cfg_mutex_lock);
+    public:
+        config(const string &_first, const string &_me, config_view_change *_vc);
+        unsigned view_id() { return my_view_id; }
+        const string &myaddr() const { return me; }
+        string dump() { return paxos.dump(); }
+        void get_view(unsigned instance, vector<string> &m);
+        void restore(const string &s);
+        bool add(const string &, unsigned view_id);
+        bool ismember(const string &m, unsigned view_id);
+        void heartbeater(void);
+        void paxos_commit(unsigned instance, const string &v);
+        rpcs *get_rpcs() { return paxos.get_rpcs(); }
+        void breakpoint(int b) { paxos.breakpoint(b); }
 };
 
 #endif