diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2015-01-07 10:16:13 -0330 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2015-01-07 10:16:13 -0330 |
commit | 25dc1ddfb828aa892afdf399c835c8a150a8cff3 (patch) | |
tree | 1c0ba31f16ad41aadcdccddbc4fc803396004709 /cpp | |
parent | ICE-6253 added tests to ensure Functional_TwowayCallback* used (diff) | |
download | ice-25dc1ddfb828aa892afdf399c835c8a150a8cff3.tar.bz2 ice-25dc1ddfb828aa892afdf399c835c8a150a8cff3.tar.xz ice-25dc1ddfb828aa892afdf399c835c8a150a8cff3.zip |
ICE-6082 added sndBufSize and rcvBufSize to UDPEndpointInfo
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/src/Ice/UdpEndpointI.cpp | 29 | ||||
-rw-r--r-- | cpp/src/Ice/UdpEndpointI.h | 5 | ||||
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.cpp | 17 | ||||
-rw-r--r-- | cpp/src/Ice/UdpTransceiver.h | 2 | ||||
-rw-r--r-- | cpp/test/Ice/info/AllTests.cpp | 8 |
5 files changed, 53 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: diff --git a/cpp/test/Ice/info/AllTests.cpp b/cpp/test/Ice/info/AllTests.cpp index 3997c533a56..14c7f6a6623 100644 --- a/cpp/test/Ice/info/AllTests.cpp +++ b/cpp/test/Ice/info/AllTests.cpp @@ -18,6 +18,10 @@ using namespace Test; void allTests(const Ice::CommunicatorPtr& communicator) { + Ice::PropertiesPtr properties = communicator->getProperties(); + properties->setProperty("Ice.UDP.SndSize", "1024"); + properties->setProperty("Ice.UDP.RcvSize", "2048"); + cout << "testing proxy endpoint information... " << flush; { Ice::ObjectPrx p1 = @@ -60,6 +64,8 @@ allTests(const Ice::CommunicatorPtr& communicator) test(!udpEndpoint->secure()); test(udpEndpoint->datagram()); test(udpEndpoint->type() == Ice::UDPEndpointType); + test(udpEndpoint->sndBufSize == -1); + test(udpEndpoint->rcvBufSize == -1); Ice::OpaqueEndpointInfoPtr opaqueEndpoint = Ice::OpaqueEndpointInfoPtr::dynamicCast(endps[2]->getInfo()); test(opaqueEndpoint); @@ -94,6 +100,8 @@ allTests(const Ice::CommunicatorPtr& communicator) test(udpEndpoint->host == defaultHost); test(udpEndpoint->datagram()); test(udpEndpoint->port > 0); + test(udpEndpoint->sndBufSize == 1024); + test(udpEndpoint->rcvBufSize == 2048); adapter->destroy(); |