// ********************************************************************** // // Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. // // This copy of Ice-E is licensed to you under the terms described in the // ICEE_LICENSE file included in this distribution. // // ********************************************************************** #ifndef ICEE_ACCEPTOR_H #define ICEE_ACCEPTOR_H #include #include #include #include #include #include #ifdef _WIN32 # include typedef int ssize_t; #else # define SOCKET int # include // For struct sockaddr_in #endif namespace IceInternal { class Endpoint; class ICE_API Acceptor : public ::IceUtil::Shared { public: SOCKET fd(); void close(); void listen(); TransceiverPtr accept(); void connectToSelf(); std::string toString() const; bool equivalent(const std::string&, int) const; int effectivePort(); private: Acceptor(const InstancePtr&, const std::string&, int, int); virtual ~Acceptor(); friend class TcpEndpoint; InstancePtr _instance; TraceLevelsPtr _traceLevels; ::Ice::LoggerPtr _logger; SOCKET _fd; int _backlog; struct sockaddr_in _addr; int _timeout; }; } #endif