persconn.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. #ifndef ns_conpers_h
  2. #define ns_conpers_h
  3. #include <stdio.h>
  4. #include <limits.h>
  5. #include <tcl.h>
  6. #include <ranvar.h>
  7. #include <tclcl.h>
  8. #include "config.h"
  9. #define IDLE 0
  10. #define INUSE 1
  11. #define NONPERSIST 0
  12. #define PERSIST 1
  13. // Abstract page pool, used for interface only
  14. class PagePool : public TclObject {
  15. public: 
  16. PagePool() : num_pages_(0), start_time_(INT_MAX), end_time_(INT_MIN) {}
  17. int num_pages() const { return num_pages_; }
  18. protected:
  19. virtual int command(int argc, const char*const* argv);
  20. int num_pages_;
  21. double start_time_;
  22. double end_time_;
  23. int duration_;
  24. // Helper functions
  25. TclObject* lookup_obj(const char* name) {
  26. TclObject* obj = Tcl::instance().lookup(name);
  27. if (obj == NULL) 
  28. fprintf(stderr, "Bad object name %sn", name);
  29. return obj;
  30. }
  31. };
  32. class PersConn : public TclObject {
  33. public: 
  34. // PersConn() : status_(IDLE), pendingReqByte_(0), pendingReplyByte_(0), ctcp_(NULL), csnk_(NULL), client_(NULL), server_(NULL) {}
  35. PersConn() :  ctcp_(NULL), csnk_(NULL), client_(NULL), server_(NULL) {}
  36. // inline int getStatus() { return status_ ;}
  37. // inline void setStatus(int s) { status_ = s ;}
  38. inline void setDst(int d) { dst_ = d ;}
  39. inline void setSrc(int s) { src_ = s ;}
  40. inline int getDst() { return dst_ ;}
  41. inline int getSrc() { return src_ ;}
  42. inline TcpAgent* getCTcpAgent() { return ctcp_ ;}
  43. inline TcpSink* getCTcpSink() { return csnk_ ;}
  44. inline TcpAgent* getSTcpAgent() { return stcp_ ;}
  45. inline TcpSink* getSTcpSink() { return ssnk_ ;}
  46. inline Node* getCNode() { return client_ ;}
  47. inline Node* getSNode() { return server_ ;}
  48. inline void setCTcpAgent(TcpAgent* c) { ctcp_ = c;}
  49. inline void setCTcpSink(TcpSink* c) { csnk_ = c;}
  50. inline void setSTcpAgent(TcpAgent* s) { stcp_ = s;}
  51. inline void setSTcpSink(TcpSink* s) { ssnk_ = s;}
  52. inline void setCNode(Node* c) { client_ = c;}
  53. inline void setSNode(Node* s) { server_ = s;}
  54. //        int pendingReqByte_ ;
  55. //        int pendingReplyByte_ ;
  56. protected:
  57. // int status_ ;
  58. int src_ ;
  59. int dst_ ;
  60. TcpAgent* ctcp_ ;
  61. TcpSink* csnk_ ;
  62. TcpAgent* stcp_ ;
  63. TcpSink* ssnk_ ;
  64. Node* client_ ;
  65. Node* server_ ;
  66. };
  67. #endif //ns_conpers_h