libt2n: (gerd) fix client-connection-logic, finish wrappers, all tests are working...
[libt2n] / src / command_client.hxx
index 8c6b2bf..841609c 100644 (file)
@@ -28,19 +28,38 @@ namespace libt2n
 /// a client sending out commands to a server
 class command_client
 {
+    public:
+        static const long long command_timeout_usec_default=90000000;
+        static const long long hello_timeout_usec_default=30000000;
+
     private:
-        client_connection &c;
+        client_connection *c;
 
         long long hello_timeout_usec;
         long long command_timeout_usec;
 
         void read_hello();
         std::string read_packet(const long long &usec_timeout);
+        bool check_hello(const std::string& hellostr);
 
     public:
-        command_client(client_connection& _c, long long _command_timeout_usec=90000000, long long _hello_timeout_usec=30000000);
+        command_client(client_connection* _c,
+            long long _command_timeout_usec=command_timeout_usec_default,
+            long long _hello_timeout_usec=hello_timeout_usec_default);
+        virtual ~command_client() {}
+
+        void replace_connection(client_connection* _c);
 
         void send_command(command* cmd, result_container &res);
+
+        void set_command_timeout_usec(long long _command_timeout_usec=command_timeout_usec_default)
+            { command_timeout_usec=_command_timeout_usec; }
+        void set_hello_timeout_usec(long long _hello_timeout_usec=hello_timeout_usec_default)
+            { hello_timeout_usec=_hello_timeout_usec; }
+        long long get_command_timeout_usec(void)
+            { return command_timeout_usec; }
+        long long get_hello_timeout_usec(void)
+            { return hello_timeout_usec; }
 };
 
 }