本文整理汇总了C++中ObjectPrx::ice_getIdentity方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectPrx::ice_getIdentity方法的具体用法?C++ ObjectPrx::ice_getIdentity怎么用?C++ ObjectPrx::ice_getIdentity使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjectPrx
的用法示例。
在下文中一共展示了ObjectPrx::ice_getIdentity方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: assert
void
IceInternal::RouterInfo::addProxy(const ObjectPrx& proxy)
{
assert(proxy); // Must not be called for null proxies.
{
IceUtil::Mutex::Lock sync(*this);
if(_identities.find(proxy->ice_getIdentity()) != _identities.end())
{
//
// Only add the proxy to the router if it's not already in our local map.
//
return;
}
}
ObjectProxySeq proxies;
proxies.push_back(proxy);
addAndEvictProxies(proxy, _router->addProxies(proxies));
}
示例2: if
//.........这里部分代码省略.........
case 'O':
{
if(_requestQueue)
{
proxy = proxy->ice_batchOneway();
}
else
{
proxy = proxy->ice_oneway();
}
break;
}
case 'D':
{
if(_requestQueue)
{
proxy = proxy->ice_batchDatagram();
}
else
{
proxy = proxy->ice_datagram();
}
break;
}
case 's':
{
proxy = proxy->ice_secure(true);
break;
}
case 'z':
{
proxy = proxy->ice_compress(true);
break;
}
default:
{
Warning out(_instance->logger());
out << "unknown forward option `" << option << "'";
break;
}
}
}
}
if(_requestTraceLevel >= 1)
{
Trace out(_instance->logger(), "Glacier2");
if(_reverseConnection)
{
out << "reverse ";
}
out << "routing";
if(_requestQueue)
{
out << " (buffered)";
}
else
{
out << " (not buffered)";
}
if(_reverseConnection)
{
out << "\nidentity = " << _instance->communicator()->identityToString(proxy->ice_getIdentity());
}
else
{
out << "\nproxy = " << _instance->communicator()->proxyToString(proxy);
}
out << "\noperation = " << current.operation;
out << "\ncontext = ";
Context::const_iterator q = current.ctx.begin();
while(q != current.ctx.end())
{
out << q->first << '/' << q->second;
if(++q != current.ctx.end())
{
out << ", ";
}
}
}
if(_requestQueue)
{
//
// If we are in buffered mode, we create a new request and add
// it to the request queue. If the request is twoway, we use
// AMI.
//
bool override;
try
{
override = _requestQueue->addRequest(new Request(proxy, inParams, current, _forwardContext, _context,
amdCB));
}
catch(const ObjectNotExistException& ex)
示例3: out
Glacier2::PermissionsVerifierPrx
RegistryI::getPermissionsVerifier(const ObjectAdapterPtr& adapter,
const IceGrid::LocatorPrx& locator,
const string& verifierProperty,
const string& passwordsProperty)
{
//
// Get the permissions verifier, or create a default one if no
// verifier is specified.
//
ObjectPrx verifier;
string verifierPropertyValue = _communicator->getProperties()->getProperty(verifierProperty);
if(!verifierPropertyValue.empty())
{
try
{
try
{
verifier = _communicator->propertyToProxy(verifierProperty);
}
catch(const ProxyParseException&)
{
//
// Check if the property is just the identity of the null permissions verifier
// (the identity might contain spaces which would prevent it to be parsed as a
// proxy).
//
if(_communicator->stringToIdentity(verifierPropertyValue) ==
_nullPermissionsVerifier->ice_getIdentity())
{
verifier = _communicator->stringToProxy("\"" + verifierPropertyValue + "\"");
}
}
if(!verifier)
{
Error out(_communicator->getLogger());
out << "permissions verifier `" + verifierPropertyValue + "' is invalid";
return 0;
}
assert(_nullPermissionsVerifier);
if(verifier->ice_getIdentity() == _nullPermissionsVerifier->ice_getIdentity())
{
verifier = _nullPermissionsVerifier;
}
}
catch(const LocalException& ex)
{
Error out(_communicator->getLogger());
out << "permissions verifier `" + verifierPropertyValue + "' is invalid:\n" << ex;
return 0;
}
}
else if(!passwordsProperty.empty())
{
//
// No nativeToUTF8 conversion necessary here, since no string
// converter is installed by IceGrid the string is UTF-8.
//
IceUtilInternal::ifstream passwordFile(passwordsProperty);
if(!passwordFile)
{
Error out(_communicator->getLogger());
string err = strerror(errno);
out << "cannot open `" + passwordsProperty + "' for reading: " + err;
return 0;
}
map<string, string> passwords;
while(true)
{
string userId;
passwordFile >> userId;
if(!passwordFile)
{
break;
}
string password;
passwordFile >> password;
if(!passwordFile)
{
break;
}
assert(!userId.empty());
assert(!password.empty());
passwords.insert(make_pair(userId, password));
}
verifier = adapter->addWithUUID(new CryptPermissionsVerifierI(passwords));
}
示例4: out
Glacier2::PermissionsVerifierPrx
RegistryI::getPermissionsVerifier(const ObjectAdapterPtr& adapter,
const IceGrid::LocatorPrx& locator,
const string& verifierProperty,
const string& passwordsProperty,
bool nowarn)
{
//
// Get the permissions verifier, or create a default one if no
// verifier is specified.
//
ObjectPrx verifier;
string verifierPropertyValue = _communicator->getProperties()->getProperty(verifierProperty);
if(!verifierPropertyValue.empty())
{
try
{
verifier = _communicator->propertyToProxy(verifierProperty);
if(!verifier)
{
Error out(_communicator->getLogger());
out << "permissions verifier `" + verifierPropertyValue + "' is invalid";
return 0;
}
assert(_nullPermissionsVerifier);
if(verifier->ice_getIdentity() == _nullPermissionsVerifier->ice_getIdentity())
{
verifier = _nullPermissionsVerifier;
}
}
catch(const LocalException& ex)
{
Error out(_communicator->getLogger());
out << "permissions verifier `" + verifierPropertyValue + "' is invalid:\n" << ex;
return 0;
}
}
else if(!passwordsProperty.empty())
{
ifstream passwordFile(passwordsProperty.c_str());
if(!passwordFile)
{
Error out(_communicator->getLogger());
string err = strerror(errno);
out << "cannot open `" + passwordsProperty + "' for reading: " + err;
return 0;
}
map<string, string> passwords;
while(true)
{
string userId;
passwordFile >> userId;
if(!passwordFile)
{
break;
}
string password;
passwordFile >> password;
if(!passwordFile)
{
break;
}
assert(!userId.empty());
assert(!password.empty());
passwords.insert(make_pair(userId, password));
}
verifier = adapter->addWithUUID(new CryptPermissionsVerifierI(passwords));
}
示例5: ObjectNotExistException
ObjectProxySeq
Glacier2::RoutingTable::add(const ObjectProxySeq& unfiltered, const Current& current)
{
IceUtil::Mutex::Lock sync(*this);
size_t sz = _map.size();
//
// We 'pre-scan' the list, applying our validation rules. The
// ensures that our state is not modified if this operation results
// in a rejection.
//
ObjectProxySeq proxies;
for(ObjectProxySeq::const_iterator prx = unfiltered.begin(); prx != unfiltered.end(); ++prx)
{
if(!*prx) // We ignore null proxies.
{
continue;
}
if(!_verifier->verify(*prx))
{
current.con->close(true);
throw ObjectNotExistException(__FILE__, __LINE__);
}
ObjectPrx proxy = (*prx)->ice_twoway()->ice_secure(false)->ice_facet(""); // We add proxies in default form.
proxies.push_back(proxy);
}
ObjectProxySeq evictedProxies;
for(ObjectProxySeq::const_iterator prx = proxies.begin(); prx != proxies.end(); ++prx)
{
ObjectPrx proxy = *prx;
EvictorMap::iterator p = _map.find(proxy->ice_getIdentity());
if(p == _map.end())
{
if(_traceLevel == 1 || _traceLevel >= 3)
{
Trace out(_communicator->getLogger(), "Glacier2");
out << "adding proxy to routing table:\n" << _communicator->proxyToString(proxy);
}
EvictorEntryPtr entry = new EvictorEntry;
p = _map.insert(_map.begin(), pair<const Identity, EvictorEntryPtr>(proxy->ice_getIdentity(), entry));
EvictorQueue::iterator q = _queue.insert(_queue.end(), p);
entry->proxy = proxy;
entry->pos = q;
}
else
{
if(_traceLevel == 1 || _traceLevel >= 3)
{
Trace out(_communicator->getLogger(), "Glacier2");
out << "proxy already in routing table:\n" << _communicator->proxyToString(proxy);
}
EvictorEntryPtr entry = p->second;
_queue.erase(entry->pos);
EvictorQueue::iterator q = _queue.insert(_queue.end(), p);
entry->pos = q;
}
while(static_cast<int>(_map.size()) > _maxSize)
{
p = _queue.front();
if(_traceLevel >= 2)
{
Trace out(_communicator->getLogger(), "Glacier2");
out << "evicting proxy from routing table:\n" << _communicator->proxyToString(p->second->proxy);
}
evictedProxies.push_back(p->second->proxy);
_map.erase(p);
_queue.pop_front();
}
}
if(_observer)
{
_observer->routingTableSize(static_cast<Ice::Int>(_map.size()) - static_cast<Ice::Int>(sz));
}
return evictedProxies;
}