diff options
author | Benoit Foucher <benoit@zeroc.com> | 2009-08-21 15:55:01 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2009-08-21 15:55:01 +0200 |
commit | b9f2fa14fb3f222a6ec5e0a93bf25fe5ad12b56a (patch) | |
tree | 183215e2dbeadfbc871b800ce09726e58af38b91 /cpp/src/Ice/UdpTransceiver.h | |
parent | adding compression cookbook demo (diff) | |
download | ice-b9f2fa14fb3f222a6ec5e0a93bf25fe5ad12b56a.tar.bz2 ice-b9f2fa14fb3f222a6ec5e0a93bf25fe5ad12b56a.tar.xz ice-b9f2fa14fb3f222a6ec5e0a93bf25fe5ad12b56a.zip |
IOCP changes, bug 3501, 4200, 4156, 3101
Diffstat (limited to 'cpp/src/Ice/UdpTransceiver.h')
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h index 6aa5e5332b9..df86f0c9e9c 100644 --- a/cpp/src/Ice/UdpTransceiver.h +++ b/cpp/src/Ice/UdpTransceiver.h @@ -33,17 +33,27 @@ class UdpEndpoint; class SUdpTransceiver; -class UdpTransceiver : public Transceiver +class UdpTransceiver : public Transceiver, public NativeInfo { public: - virtual SOCKET fd(); + virtual NativeInfoPtr getNativeInfo(); +#ifdef ICE_USE_IOCP + virtual AsyncInfo* getAsyncInfo(SocketOperation); +#endif + + virtual SocketOperation initialize(); virtual void close(); virtual bool write(Buffer&); virtual bool read(Buffer&); +#ifdef ICE_USE_IOCP + virtual void startWrite(Buffer&); + virtual void finishWrite(Buffer&); + virtual void startRead(Buffer&); + virtual void finishRead(Buffer&); +#endif virtual std::string type() const; virtual std::string toString() const; - virtual SocketStatus initialize(); virtual void checkSendSize(const Buffer&, size_t); int effectivePort() const; @@ -67,15 +77,17 @@ private: const struct sockaddr_storage _addr; struct sockaddr_storage _mcastAddr; - SOCKET _fd; bool _connect; int _rcvSize; int _sndSize; const bool _warn; static const int _udpOverhead; static const int _maxPacketSize; - bool _shutdownReadWrite; - IceUtil::Mutex _shutdownReadWriteMutex; + +#ifdef ICE_USE_IOCP + AsyncInfo _read; + AsyncInfo _write; +#endif }; } |