Refactoring
[invirt/third/libt4.git] / rpc / rpc.h
index 9ec2fd8..4f9a231 100644 (file)
--- a/rpc/rpc.h
+++ b/rpc/rpc.h
@@ -30,7 +30,7 @@ class rpc_const {
 // rpc client endpoint.
 // manages a xid space per destination socket
 // threaded: multiple threads can be sending RPCs,
-class rpcc : public chanmgr {
+class rpcc : public connection_delegate {
     private:
 
         //manages per rpc info
@@ -135,7 +135,7 @@ rpcc::call_timeout(proc_t proc, const milliseconds to, R & r, const Args&... arg
 }
 
 // rpc server endpoint.
-class rpcs : public chanmgr {
+class rpcs : public connection_delegate {
 
     typedef enum {
         NEW,  // new RPC, not a duplicate
@@ -200,8 +200,8 @@ class rpcs : public chanmgr {
     // internal handler registration
     void reg1(proc_t proc, handler *);
 
-    ThrPool* dispatchpool_;
-    tcpsconn *listener_;
+    unique_ptr<thread_pool> dispatchpool_;
+    unique_ptr<tcpsconn> listener_;
 
     public:
     rpcs(in_port_t port, size_t counts=0);
@@ -223,6 +223,8 @@ class rpcs : public chanmgr {
     template<class F, class C=void> void reg(proc_t proc, F f, C *c=nullptr) {
         reg1(proc, marshalled_func<F, ReturnOnFailure>::wrap(f, c));
     }
+
+    void start();
 };
 
 #endif