diff options
Diffstat (limited to 'cpp/src/Ice/RoutingTable.h')
-rw-r--r-- | cpp/src/Ice/RoutingTable.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/cpp/src/Ice/RoutingTable.h b/cpp/src/Ice/RoutingTable.h new file mode 100644 index 00000000000..2cfe53baa7a --- /dev/null +++ b/cpp/src/Ice/RoutingTable.h @@ -0,0 +1,53 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_ROUTING_TABLE_H +#define ICE_ROUTING_TABLE_H + +#include <IceUtil/Shared.h> +#include <IceUtil/Mutex.h> +#include <Ice/RoutingTableF.h> +#include <Ice/ProxyF.h> +#include <Ice/Identity.h> + +namespace Ice +{ + +struct Identity; + +} + +namespace IceInternal +{ + +class RoutingTable : public IceUtil::Shared, public IceUtil::Mutex +{ +public: + + RoutingTable(); + + // + // Clear the contents of the routing table. + // + void clear(); + + // + // Returns false if the Proxy exists already. + // + bool add(const Ice::ObjectPrx&); + +private: + + std::map<Ice::Identity, Ice::ObjectPrx> _table; + std::map<Ice::Identity, Ice::ObjectPrx>::iterator _tableHint; +}; + +} + +#endif |