OpenDaVINCI  4.16.0
NetstringsProtocol.h
Go to the documentation of this file.
1 
20 #ifndef OPENDAVINCI_CORE_IO_PROTOCOL_NETSTRINGSPROTOCOL_H_
21 #define OPENDAVINCI_CORE_IO_PROTOCOL_NETSTRINGSPROTOCOL_H_
22 
23 #include <sstream>
24 #include <string>
25 
30 
31 namespace odcore { namespace io { class StringListener; } }
32 
33 namespace odcore {
34  namespace io {
35  namespace protocol {
36 
37  using namespace std;
38 
62  private:
69 
75  NetstringsProtocol& operator=(const NetstringsProtocol &);
76 
77  public:
82 
83  virtual ~NetstringsProtocol();
84 
94  void send(const string& data);
95 
102  void setStringListener(StringListener *listener);
103 
104  virtual void nextString(const string &s);
105 
106  private:
107  void decodeNetstring();
108 
113  void invokeStringListener(const string& data);
114 
115  odcore::base::Mutex m_stringListenerMutex;
116  StringListener *m_stringListener;
117 
118  odcore::base::Mutex m_partialDataMutex;
119  stringstream m_partialData;
120  };
121 
122  }
123  }
124 }
125 
126 #endif /* OPENDAVINCI_CORE_IO_PROTOCOL_NETSTRINGSPROTOCOL_H_ */
127 
Definition: base/Mutex.h:49
#define OPENDAVINCI_API
Definition: opendavinci.h:67
Definition: StringListener.h:36
Definition: StringObserver.h:34
Definition: NetstringsProtocol.h:61
Definition: AbstractProtocol.h:40