csclientimp


  class csclientimp
  {
  public:
      csclientimp();
      virtual ~csclientimp();
  
      virtual int connect_imp();
      virtual int connect_imp(const csaddress* addr);
      virtual int connected_imp();
              // 1: connected; 0: not connected
      virtual void disconnect_imp();
      virtual data_connection* connection_imp() const;
      virtual csaddress* address_imp() const;
              // may return 0 if not connected
  
      virtual int read_imp(char* buffer, int maxbytes);
      virtual int readmsg_imp(char* buffer, int maxbytes);
      virtual int write_imp(const char* buffer, int nrbytes);
      virtual int writemsg_imp(const char* buffer, int nrbytes);
      virtual int ready_imp(timeval* timeout = NULL);     // is data available?
      virtual int fd_imp() const;
  
  protected:
      virtual data_connection* createdata(const csaddress* addr) const = 0;
  
      csaddress* _address;
      data_connection* _conn;
      int _connected;
  };

slide: csclientimp