CCAFFEINE
0.8.8
|
00001 #ifndef STATICIOCONN_seen 00002 #define STATICIOCONN_seen 00003 00004 00014 class StaticIOConnection :public virtual Connection 00015 { 00016 private: 00017 FILE* in; 00018 FILE* out; 00019 JCPN(Reader)* reader; 00020 JCPN(Writer)* writer; 00021 int clientId; 00022 public: 00023 StaticIOConnection (FILE* in, FILE* out, int clientId) 00024 :Connection(NULL) 00025 { 00026 this->in = in; 00027 this->out = out; 00028 reader = new JCPN(StdReader)(fileno(in)); 00029 writer = new JCPN(StdWriter)(fileno(out)); 00030 this->clientId = clientId; 00031 }; 00032 void setReadCallback( ReadCallback* callback ) 00033 { Connection::setReadCallback(callback); doReadCallback(); }; 00034 // the reader and writer objects should be owned by the connection - 00035 // the connection should always keep a pointer to them and be prepared to 00036 // destroy them on shutdown. 00037 virtual JCPN(Reader)* getIn() { return reader; }; 00038 virtual JCPN(Writer)* getOut() {return writer; }; 00039 virtual void shutdown() { close(fileno(in)); close(fileno(out)); }; 00040 virtual char* getName() { return ""; }; // BUGBUG - mem leak 00041 int getId() { return clientId; } 00042 }; 00043 00044 #endif 00045 00046 00047 00048