summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/EndpointI.h
diff options
context:
space:
mode:
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: