csserver


  class csserver
  {
  public:
      csserver(csserverimp* imp, csaddress* addr = 0);
      virtual ~csserver();
              // will close all remaining connections
  
      virtual int connected() const;
  
      virtual void bind(handler* h) const;
              // binds a handler object to the listen-connection (hush only)
      virtual void unbind() const;
  
      virtual data_connection* newconnection();
      virtual listen_connection* listenconn() const;
  
      virtual data_connection* conn(int fd) const;
              // find data_connection with filedescriptor fd
  
      virtual data_connection* select(fd_set* fds = 0);
      virtual void close(data_connection* conn);
      virtual void closeall();
  
      virtual int broadcast(const char* buffer, int nrbytes);
      virtual int broadcastmsg(const char* buffer, int nrbytes);
  
      virtual int read(data_connection* conn, char* buffer, int maxnrbytes);
      virtual int readmsg(data_connection* conn, char* buffer, int maxnrbytes);
      virtual int write(data_connection* conn, const char* buffer, int nrbytes);
      virtual int writemsg(data_connection* conn, const char* buffer, 
                           int nrbytes);
  
  protected:
      virtual int init(csserverimp* imp, csaddress* addr);
  
      csserverimp* _imp;
  };

slide: csserver