summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2015-01-07 10:16:13 -0330
committerDwayne Boone <dwayne@zeroc.com>2015-01-07 10:16:13 -0330
commit25dc1ddfb828aa892afdf399c835c8a150a8cff3 (patch)
tree1c0ba31f16ad41aadcdccddbc4fc803396004709 /cpp/src
parentICE-6253 added tests to ensure Functional_TwowayCallback* used (diff)
downloadice-25dc1ddfb828aa892afdf399c835c8a150a8cff3.tar.bz2
ice-25dc1ddfb828aa892afdf399c835c8a150a8cff3.tar.xz
ice-25dc1ddfb828aa892afdf399c835c8a150a8cff3.zip
ICE-6082 added sndBufSize and rcvBufSize to UDPEndpointInfo
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/UdpEndpointI.cpp29
-rw-r--r--cpp/src/Ice/UdpEndpointI.h5
-rw-r--r--cpp/src/Ice/UdpTransceiver.cpp17
-rw-r--r--cpp/src/Ice/UdpTransceiver.h2
4 files changed, 45 insertions, 8 deletions
diff --git a/cpp/src/Ice/UdpEndpointI.cpp b/cpp/src/Ice/UdpEndpointI.cpp
index 26d5cd83640..b13e3fa89f3 100644
--- a/cpp/src/Ice/UdpEndpointI.cpp
+++ b/cpp/src/Ice/UdpEndpointI.cpp
@@ -25,11 +25,13 @@ using namespace IceInternal;
IceUtil::Shared* IceInternal::upCast(UdpEndpointI* p) { return p; }
IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance, const string& host, Int port,
- const Address& sourceAddr, const string& mcastInterface, Int mttl, bool conn,
- const string& conId, bool co) :
+ const Address& sourceAddr, const string& mcastInterface, Int mttl,
+ Int sndBufSize, Int rcvBufSize, bool conn, const string& conId, bool co) :
IPEndpointI(instance, host, port, sourceAddr, conId),
_mcastTtl(mttl),
_mcastInterface(mcastInterface),
+ _sndBufSize(sndBufSize),
+ _rcvBufSize(rcvBufSize),
_connect(conn),
_compress(co)
{
@@ -38,6 +40,8 @@ IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance, con
IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance) :
IPEndpointI(instance),
_mcastTtl(-1),
+ _sndBufSize(-1),
+ _rcvBufSize(-1),
_connect(false),
_compress(false)
{
@@ -46,6 +50,8 @@ IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance) :
IceInternal::UdpEndpointI::UdpEndpointI(const ProtocolInstancePtr& instance, BasicStream* s) :
IPEndpointI(instance, s),
_mcastTtl(-1),
+ _sndBufSize(-1),
+ _rcvBufSize(-1),
_connect(false),
_compress(false)
{
@@ -128,8 +134,8 @@ IceInternal::UdpEndpointI::compress(bool compress) const
}
else
{
- return new UdpEndpointI(_instance, _host, _port, _sourceAddr, _mcastInterface, _mcastTtl, _connect,
- _connectionId, compress);
+ return new UdpEndpointI(_instance, _host, _port, _sourceAddr, _mcastInterface, _mcastTtl, _sndBufSize,
+ _rcvBufSize, _connect, _connectionId, compress);
}
}
@@ -161,7 +167,14 @@ UdpEndpointIPtr
IceInternal::UdpEndpointI::endpoint(const UdpTransceiverPtr& transceiver) const
{
return new UdpEndpointI(_instance, _host, transceiver->effectivePort(), _sourceAddr, _mcastInterface, _mcastTtl,
- _connect, _connectionId, _compress);
+ transceiver->sndBufSize(), transceiver->rcvBufSize(), _connect, _connectionId, _compress);
+}
+
+void
+IceInternal::UdpEndpointI::setBufSize(int sndSize, int rcvSize)
+{
+ const_cast<int&>(_sndBufSize) = sndSize;
+ const_cast<int&>(_rcvBufSize) = rcvSize;
}
string
@@ -335,6 +348,8 @@ IceInternal::UdpEndpointI::fillEndpointInfo(IPEndpointInfo* info) const
udpInfo->compress = _compress;
udpInfo->mcastTtl = _mcastTtl;
udpInfo->mcastInterface = _mcastInterface;
+ udpInfo->sndBufSize = _sndBufSize;
+ udpInfo->rcvBufSize = _rcvBufSize;
}
}
@@ -432,8 +447,8 @@ IceInternal::UdpEndpointI::createConnector(const Address& address, const Network
IPEndpointIPtr
IceInternal::UdpEndpointI::createEndpoint(const string& host, int port, const string& connectionId) const
{
- return new UdpEndpointI(_instance, host, port, _sourceAddr, _mcastInterface, _mcastTtl, _connect, connectionId,
- _compress);
+ return new UdpEndpointI(_instance, host, port, _sourceAddr, _mcastInterface, _mcastTtl, _sndBufSize, _rcvBufSize,
+ _connect, connectionId, _compress);
}
IceInternal::UdpEndpointFactory::UdpEndpointFactory(const ProtocolInstancePtr& instance) : _instance(instance)
diff --git a/cpp/src/Ice/UdpEndpointI.h b/cpp/src/Ice/UdpEndpointI.h
index 0177963f0d9..545decafca7 100644
--- a/cpp/src/Ice/UdpEndpointI.h
+++ b/cpp/src/Ice/UdpEndpointI.h
@@ -23,7 +23,7 @@ class UdpEndpointI : public IPEndpointI
public:
UdpEndpointI(const ProtocolInstancePtr&, const std::string&, Ice::Int, const Address&, const std::string&,
- Ice::Int, bool, const std::string&, bool);
+ Ice::Int, Ice::Int sndBufSize, Ice::Int rcvBufSize, bool, const std::string&, bool);
UdpEndpointI(const ProtocolInstancePtr&);
UdpEndpointI(const ProtocolInstancePtr&, BasicStream*);
@@ -44,6 +44,7 @@ public:
virtual bool operator<(const Ice::LocalObject&) const;
UdpEndpointIPtr endpoint(const UdpTransceiverPtr&) const;
+ void setBufSize(int sndSize, int rcvSize);
using IPEndpointI::connectionId;
@@ -64,6 +65,8 @@ private:
//
const Ice::Int _mcastTtl;
const std::string _mcastInterface;
+ const int _sndBufSize;
+ const int _rcvBufSize;
const bool _connect;
const bool _compress;
};
diff --git a/cpp/src/Ice/UdpTransceiver.cpp b/cpp/src/Ice/UdpTransceiver.cpp
index 1d2fcf47bbf..8085c1d47bb 100644
--- a/cpp/src/Ice/UdpTransceiver.cpp
+++ b/cpp/src/Ice/UdpTransceiver.cpp
@@ -884,6 +884,19 @@ IceInternal::UdpTransceiver::effectivePort() const
return getPort(_addr);
}
+int
+IceInternal::UdpTransceiver::sndBufSize() const
+{
+ return _sndSize;
+}
+
+int
+IceInternal::UdpTransceiver::rcvBufSize() const
+{
+ return _rcvSize;
+}
+
+
IceInternal::UdpTransceiver::UdpTransceiver(const ProtocolInstancePtr& instance,
const Address& addr,
#ifdef ICE_OS_WINRT
@@ -1084,6 +1097,10 @@ IceInternal::UdpTransceiver::setBufSize(const Ice::PropertiesPtr& properties)
}
}
}
+
+ if (_endpoint) {
+ _endpoint->setBufSize(_sndSize, _rcvSize);
+ }
}
#ifdef ICE_OS_WINRT
diff --git a/cpp/src/Ice/UdpTransceiver.h b/cpp/src/Ice/UdpTransceiver.h
index b09c9ce327e..5844c65ac7a 100644
--- a/cpp/src/Ice/UdpTransceiver.h
+++ b/cpp/src/Ice/UdpTransceiver.h
@@ -63,6 +63,8 @@ public:
virtual void checkSendSize(const Buffer&);
int effectivePort() const;
+ int sndBufSize() const;
+ int rcvBufSize() const;
private: