📄 serverlocator.cpp
字号:
// **********************************************************************//// Copyright (c) 2003-2007 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 <Ice/Ice.h>#include <Ice/BuiltinSequences.h>#include <ServerLocator.h>using namespace std;ServerLocatorRegistry::ServerLocatorRegistry(){}void ServerLocatorRegistry::setAdapterDirectProxy_async(const Ice::AMD_LocatorRegistry_setAdapterDirectProxyPtr& cb, const std::string& adapter, const ::Ice::ObjectPrx& object, const ::Ice::Current&){ _adapters[adapter] = object; cb->ice_response();}void ServerLocatorRegistry::setReplicatedAdapterDirectProxy_async( const Ice::AMD_LocatorRegistry_setReplicatedAdapterDirectProxyPtr& cb, const std::string& adapter, const ::std::string& replicaGroup, const ::Ice::ObjectPrx& object, const ::Ice::Current&){ _adapters[adapter] = object; _adapters[replicaGroup] = object; cb->ice_response();}void ServerLocatorRegistry::setServerProcessProxy_async(const Ice::AMD_LocatorRegistry_setServerProcessProxyPtr& cb, const ::std::string&, const Ice::ProcessPrx&, const ::Ice::Current&){ cb->ice_response();}voidServerLocatorRegistry::addObject(const Ice::ObjectPrx& object, const ::Ice::Current&){ addObject(object);}Ice::ObjectPrxServerLocatorRegistry::getAdapter(const ::std::string& adapter) const{ ::std::map< string, ::Ice::ObjectPrx>::const_iterator p = _adapters.find(adapter); if(_adapters.find(adapter) == _adapters.end()) { throw Ice::AdapterNotFoundException(); } return p->second;}Ice::ObjectPrxServerLocatorRegistry::getObject(const ::Ice::Identity& id) const{ ::std::map< ::Ice::Identity, ::Ice::ObjectPrx>::const_iterator p = _objects.find(id); if(p == _objects.end()) { throw Ice::ObjectNotFoundException(); } return p->second;}voidServerLocatorRegistry::addObject(const Ice::ObjectPrx& object){ _objects[object->ice_getIdentity()] = object;}ServerLocator::ServerLocator(const ServerLocatorRegistryPtr& registry, const ::Ice::LocatorRegistryPrx& registryPrx) : _registry(registry), _registryPrx(registryPrx), _requestCount(0){}voidServerLocator::findObjectById_async(const Ice::AMD_Locator_findObjectByIdPtr& response, const Ice::Identity& id, const Ice::Current& current) const{ ++const_cast<int&>(_requestCount); response->ice_response(_registry->getObject(id));}voidServerLocator::findAdapterById_async(const Ice::AMD_Locator_findAdapterByIdPtr& response, const string& id, const Ice::Current& current) const{ ++const_cast<int&>(_requestCount); response->ice_response(_registry->getAdapter(id));}Ice::LocatorRegistryPrxServerLocator::getRegistry(const ::Ice::Current&) const{ return _registryPrx;}intServerLocator::getRequestCount(const ::Ice::Current&) const{ return _requestCount;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -