summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/UdpTransceiver.h
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-08-21 15:55:01 +0200
committerBenoit Foucher <benoit@zeroc.com>2009-08-21 15:55:01 +0200
commitb9f2fa14fb3f222a6ec5e0a93bf25fe5ad12b56a (patch)
tree183215e2dbeadfbc871b800ce09726e58af38b91 /cpp/src/Ice/UdpTransceiver.h
parentadding compression cookbook demo (diff)
downloadice-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.h24
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
};
}