Procházet zdrojové kódy

Keep track of messages sent and bytes sent when using the MPCSingleIOStream << interface

Ian Goldberg před 1 rokem
rodič
revize
26e3e7459c
2 změnil soubory, kde provedl 21 přidání a 7 odebrání
  1. 12 4
      mpcio.cpp
  2. 9 3
      mpcio.hpp

+ 12 - 4
mpcio.cpp

@@ -353,12 +353,20 @@ MPCTIO::MPCTIO(MPCIO &mpcio, int thread_num) :
 {
     if (mpcio.player < 2) {
         MPCPeerIO &mpcpio = static_cast<MPCPeerIO&>(mpcio);
-        peer_iostream.emplace(mpcpio.peerios[thread_num], thread_lamport);
-        server_iostream.emplace(mpcpio.serverios[thread_num], thread_lamport);
+        peer_iostream.emplace(mpcpio.peerios[thread_num],
+            thread_lamport, mpcpio.msgs_sent[thread_num],
+            mpcpio.msg_bytes_sent[thread_num]);
+        server_iostream.emplace(mpcpio.serverios[thread_num],
+            thread_lamport, mpcpio.msgs_sent[thread_num],
+            mpcpio.msg_bytes_sent[thread_num]);
     } else {
         MPCServerIO &mpcsrvio = static_cast<MPCServerIO&>(mpcio);
-        p0_iostream.emplace(mpcsrvio.p0ios[thread_num], thread_lamport);
-        p1_iostream.emplace(mpcsrvio.p1ios[thread_num], thread_lamport);
+        p0_iostream.emplace(mpcsrvio.p0ios[thread_num],
+            thread_lamport, mpcsrvio.msgs_sent[thread_num],
+            mpcsrvio.msg_bytes_sent[thread_num]);
+        p1_iostream.emplace(mpcsrvio.p1ios[thread_num],
+            thread_lamport, mpcsrvio.msgs_sent[thread_num],
+            mpcsrvio.msg_bytes_sent[thread_num]);
     }
 }
 

+ 9 - 3
mpcio.hpp

@@ -235,13 +235,19 @@ struct MPCServerIO : public MPCIO {
 class MPCSingleIOStream {
     MPCSingleIO &sio;
     lamport_t &lamport;
+    size_t &msgs_sent;
+    size_t &msg_bytes_sent;
 
 public:
-    MPCSingleIOStream(MPCSingleIO &sio, lamport_t &lamport) :
-        sio(sio), lamport(lamport) {}
+    MPCSingleIOStream(MPCSingleIO &sio, lamport_t &lamport,
+            size_t &msgs_sent, size_t &msg_bytes_sent) :
+        sio(sio), lamport(lamport), msgs_sent(msgs_sent),
+        msg_bytes_sent(msg_bytes_sent) {}
 
     MPCSingleIOStream& write(const char *data, std::streamsize len) {
-        sio.queue(data, len, lamport);
+        size_t newmsg = sio.queue(data, len, lamport);
+        msgs_sent += newmsg;
+        msg_bytes_sent += len;
         return *this;
     }