summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/EndpointI.h
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-10-21 17:02:37 +0200
committerBenoit Foucher <benoit@zeroc.com>2009-10-21 17:02:37 +0200
commita80b3c8cbb203c78b061e99e1a764685af4a93e9 (patch)
tree5448b1dd66499b8fc9e46c618aa65b6687855946 /cpp/src/Ice/EndpointI.h
parentBug 4311 - change Ice::Service::start signature (diff)
downloadice-a80b3c8cbb203c78b061e99e1a764685af4a93e9.tar.bz2
ice-a80b3c8cbb203c78b061e99e1a764685af4a93e9.tar.xz
ice-a80b3c8cbb203c78b061e99e1a764685af4a93e9.zip
- Removed old IceSSL::ConnectionInfo struct, it's now replaced with
IceSSL::NativeConnectionInfo. - Removed Ice::ConnectionInfo endpoint attribute. - Added Ice::Connection::getEndpoint() method. - Added Ice::ConnectionInfo adapterName and incoming attributes. - Replaced Tcp and Udp prefixes with TCP and UDP in endpoint/info classes. - Added IPEndpointInfo and IPConnectionInfo intermediate classes. - Fixed 2058: deprecate ice_hash for Ice.Object & Ice.LocalObject, added ice_getHash - Fixed bug where Ice::Endpoint comparison would only compare the endpoint object addresses rather than the endpoint attributes like in Java and C#. - Added ice_getHash implementation for endpoints and cleaned up Reference::hash to use HashUtil.h helper methods. - Added test/Ice/info and removed endpoint info test from test/Ice/proxy.
Diffstat (limited to 'cpp/src/Ice/EndpointI.h')
-rw-r--r--cpp/src/Ice/EndpointI.h47
1 files changed, 19 insertions, 28 deletions
diff --git a/cpp/src/Ice/EndpointI.h b/cpp/src/Ice/EndpointI.h
index 2dc851f4f42..1336ce31caa 100644
--- a/cpp/src/Ice/EndpointI.h
+++ b/cpp/src/Ice/EndpointI.h
@@ -135,47 +135,38 @@ public:
// Check whether the endpoint is equivalent to another one.
//
virtual bool equivalent(const EndpointIPtr&) const = 0;
-
+
//
// Compare endpoints for sorting purposes.
//
- virtual bool operator==(const EndpointI&) const = 0;
- virtual bool operator!=(const EndpointI&) const = 0;
- virtual bool operator<(const EndpointI&) const = 0;
-
-#if defined(__BCPLUSPLUS__)
- //
- // COMPILERFIX: Avoid warnings about hiding members for C++Builder 2010
- //
- //
- virtual bool operator==(const Ice::LocalObject& rhs) const
- {
- return Ice::LocalObject::operator==(rhs);
- }
-
- virtual bool operator<(const Ice::LocalObject& rhs) const
- {
- return Ice::LocalObject::operator<(rhs);
- }
-#endif
+ virtual bool operator==(const LocalObject&) const = 0;
+ virtual bool operator<(const LocalObject&) const = 0;
+ virtual ::Ice::Int ice_getHash() const;
protected:
virtual std::vector<ConnectorPtr> connectors(const std::vector<struct sockaddr_storage>&) const;
friend class EndpointHostResolver;
+ EndpointI();
+ virtual ::Ice::Int hashInit() const = 0;
+
private:
-#if defined(__SUNPRO_CC)
- //
- // COMPILERFIX: prevent the compiler from emitting a warning about
- // hidding these operators.
- //
- using LocalObject::operator==;
- using LocalObject::operator<;
-#endif
+ mutable bool _hashInitialized;
+ mutable Ice::Int _hashValue;
};
+inline bool operator==(const EndpointI& l, const EndpointI& r)
+{
+ return static_cast<const ::Ice::LocalObject&>(l) == static_cast<const ::Ice::LocalObject&>(r);
+}
+
+inline bool operator<(const EndpointI& l, const EndpointI& r)
+{
+ return static_cast<const ::Ice::LocalObject&>(l) < static_cast<const ::Ice::LocalObject&>(r);
+}
+
class ICE_API EndpointHostResolver : public IceUtil::Thread, public IceUtil::Monitor<IceUtil::Mutex>
{
public: