TEMPLATE MAGIC FOR GREAT JUSTICE
[invirt/third/libt4.git] / paxos.h
diff --git a/paxos.h b/paxos.h
index 7188edb..170292a 100644 (file)
--- a/paxos.h
+++ b/paxos.h
@@ -3,15 +3,14 @@
 
 #include <string>
 #include <vector>
-#include "rpc.h"
+#include "rpc/rpc.h"
 #include "paxos_protocol.h"
 #include "log.h"
-#include "mutex.h"
 
 
 class paxos_change {
  public:
-  virtual void paxos_commit(unsigned instance, std::string v) = 0;
+  virtual void paxos_commit(unsigned instance, const std::string &v) = 0;
   virtual ~paxos_change() {};
 };
 
@@ -21,7 +20,7 @@ class acceptor {
   rpcs *pxs;
   paxos_change *cfg;
   std::string me;
-  mutex pxs_mutex;
+  std::mutex pxs_mutex;
 
   // Acceptor state
   prop_t n_h;          // number of the highest proposal seen in a prepare
@@ -31,18 +30,17 @@ class acceptor {
   std::map<unsigned,std::string> values;       // vals of each instance
 
   void commit_wo(unsigned instance, std::string v);
-  paxos_protocol::status preparereq(std::string src, 
-          paxos_protocol::preparearg a,
-          paxos_protocol::prepareres &r);
-  paxos_protocol::status acceptreq(std::string src, 
-          paxos_protocol::acceptarg a, bool &r);
-  paxos_protocol::status decidereq(std::string src, 
-          paxos_protocol::decidearg a, int &r);
+  paxos_protocol::status preparereq(paxos_protocol::prepareres &r,
+          std::string src, paxos_protocol::preparearg a);
+  paxos_protocol::status acceptreq(bool &r, std::string src,
+          paxos_protocol::acceptarg a);
+  paxos_protocol::status decidereq(int &r, std::string src,
+          paxos_protocol::decidearg a);
 
   friend class log;
 
  public:
-  acceptor(class paxos_change *cfg, bool _first, std::string _me, 
+  acceptor(class paxos_change *cfg, bool _first, std::string _me,
        std::string _value);
   ~acceptor() {};
   void commit(unsigned instance, std::string v);
@@ -67,17 +65,17 @@ class proposer {
   bool break1;
   bool break2;
 
-  mutex pxs_mutex;
+  std::mutex pxs_mutex;
 
   // Proposer state
   bool stable;
   prop_t my_n;         // number of the last proposal used in this instance
 
   void setn();
-  bool prepare(unsigned instance, std::vector<std::string> &accepts, 
+  bool prepare(unsigned instance, std::vector<std::string> &accepts,
          std::vector<std::string> nodes,
          std::string &v);
-  void accept(unsigned instance, std::vector<std::string> &accepts, 
+  void accept(unsigned instance, std::vector<std::string> &accepts,
         std::vector<std::string> nodes, std::string v);
   void decide(unsigned instance, std::vector<std::string> accepts,
         std::string v);