summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/ObjectRegistryI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IcePack/ObjectRegistryI.cpp')
-rw-r--r--cpp/src/IcePack/ObjectRegistryI.cpp228
1 files changed, 0 insertions, 228 deletions
diff --git a/cpp/src/IcePack/ObjectRegistryI.cpp b/cpp/src/IcePack/ObjectRegistryI.cpp
deleted file mode 100644
index 21538ca8251..00000000000
--- a/cpp/src/IcePack/ObjectRegistryI.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-// **********************************************************************
-//
-// 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.
-//
-// **********************************************************************
-
-#include <IceUtil/StringUtil.h>
-#include <Ice/IdentityUtil.h>
-#include <IcePack/ObjectRegistryI.h>
-#include <IcePack/TraceLevels.h>
-#include <Freeze/Initialize.h>
-
-using namespace std;
-using namespace IcePack;
-
-const string ObjectRegistryI::_objectsDbName = "objectregistry";
-const string ObjectRegistryI::_typesDbName = "objectregistry-types";
-
-ObjectRegistryI::ObjectRegistryI(const Ice::CommunicatorPtr& communicator,
- const string& envName,
- const TraceLevelsPtr& traceLevels) :
- _connectionCache(Freeze::createConnection(communicator, envName)),
- _objectsCache(_connectionCache, _objectsDbName, true),
- _typesCache(_connectionCache, _typesDbName, true),
- _traceLevels(traceLevels),
- _envName(envName),
- _communicator(communicator)
-{
-}
-
-void
-ObjectRegistryI::add(const ObjectDescriptor& obj, const Ice::Current&)
-{
- IceUtil::Mutex::Lock sync(*this);
-
- Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName);
- IdentityObjectDescDict objects(connection, _objectsDbName);
- StringObjectProxySeqDict types(connection, _typesDbName);
-
- Ice::Identity id = obj.proxy->ice_getIdentity();
-
- IdentityObjectDescDict::iterator p = objects.find(id);
- if(p != objects.end())
- {
- throw ObjectExistsException();
- }
-
- //
- // Add the object to the object dictionary.
- //
- objects.put(pair<const Ice::Identity, const ObjectDescriptor>(id, obj));
-
- //
- // Add the object to the interface dictionary.
- //
- if(!obj.type.empty())
- {
- Ice::ObjectProxySeq seq;
-
- StringObjectProxySeqDict::iterator q = types.find(obj.type);
- if(q != types.end())
- {
- seq = q->second;
- }
-
- seq.push_back(obj.proxy);
-
- if(q == types.end())
- {
- types.put(pair<const string, const Ice::ObjectProxySeq>(obj.type, seq));
- }
- else
- {
- q.set(seq);
- }
- }
-
- if(_traceLevels->objectRegistry > 0)
- {
- Ice::Trace out(_traceLevels->logger, _traceLevels->objectRegistryCat);
- out << "added object `" << Ice::identityToString(id) << "'";
- }
-}
-
-void
-ObjectRegistryI::remove(const Ice::Identity& id, const Ice::Current&)
-{
- IceUtil::Mutex::Lock sync(*this);
-
- Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName);
- IdentityObjectDescDict objects(connection, _objectsDbName);
- StringObjectProxySeqDict types(connection, _typesDbName);
-
- IdentityObjectDescDict::iterator p = objects.find(id);
- if(p == objects.end())
- {
- throw ObjectNotExistException();
- }
-
- ObjectDescriptor obj = p->second;
-
- if(!obj.type.empty())
- {
- //
- // Remove the object from the interface dictionary.
- //
- StringObjectProxySeqDict::iterator q = types.find(obj.type);
- assert(q != types.end());
-
- Ice::ObjectProxySeq seq = q->second;
-
- Ice::ObjectProxySeq::iterator r;
- for(r = seq.begin(); r != seq.end(); ++r)
- {
- if((*r)->ice_getIdentity() == id)
- {
- break;
- }
- }
-
- assert(r != seq.end());
- seq.erase(r);
-
- if(seq.size() == 0)
- {
- types.erase(q);
- }
- else
- {
- q.set(seq);
- }
- }
-
- //
- // Remove the object from the object dictionary.
- //
- objects.erase(p);
-
- if(_traceLevels->objectRegistry > 0)
- {
- Ice::Trace out(_traceLevels->logger, _traceLevels->objectRegistryCat);
- out << "removed object `" << id << "'";
- }
-}
-
-ObjectDescriptor
-ObjectRegistryI::getObjectDescriptor(const Ice::Identity& id, const Ice::Current&) const
-{
- Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName);
- IdentityObjectDescDict objects(connection, _objectsDbName);
-
-
- IdentityObjectDescDict::iterator p = objects.find(id);
- if(p == objects.end())
- {
- throw ObjectNotExistException();
- }
-
- return p->second;
-}
-
-Ice::ObjectPrx
-ObjectRegistryI::findById(const Ice::Identity& id, const Ice::Current&) const
-{
- Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName);
- IdentityObjectDescDict objects(connection, _objectsDbName);
-
- IdentityObjectDescDict::iterator p = objects.find(id);
- if(p == objects.end())
- {
- throw ObjectNotExistException();
- }
-
- return p->second.proxy;
-}
-
-Ice::ObjectPrx
-ObjectRegistryI::findByType(const string& type, const Ice::Current&) const
-{
- Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName);
- StringObjectProxySeqDict types(connection, _typesDbName);
-
- StringObjectProxySeqDict::iterator p = types.find(type);
- if(p == types.end())
- {
- throw ObjectNotExistException();
- }
-
- int r = rand() % int(p->second.size());
- return p->second[r];
-}
-
-Ice::ObjectProxySeq
-ObjectRegistryI::findAllWithType(const string& type, const Ice::Current&) const
-{
- Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName);
- StringObjectProxySeqDict types(connection, _typesDbName);
-
- StringObjectProxySeqDict::iterator p = types.find(type);
- if(p == types.end())
- {
- throw ObjectNotExistException();
- }
-
- return p->second;
-}
-
-ObjectDescriptorSeq
-ObjectRegistryI::findAll(const string& expression, const Ice::Current&) const
-{
- Freeze::ConnectionPtr connection = Freeze::createConnection(_communicator, _envName);
- IdentityObjectDescDict objects(connection, _objectsDbName);
-
- ObjectDescriptorSeq result;
- for(IdentityObjectDescDict::const_iterator p = objects.begin(); p != objects.end(); ++p)
- {
- if(expression.empty() ||
- IceUtil::match(Ice::identityToString(p->second.proxy->ice_getIdentity()), expression, true))
- {
- result.push_back(p->second);
- }
- }
- return result;
-}
-