class connection { public: connection(); // for receiving side connection(const csaddress* addr); virtual ~connection(); virtual csaddress* address() const; virtual int fd() const; virtual int connected(); protected: virtual void init(const csaddress* addr); int _fd; int _connected; csaddress* _address; };