本文整理汇总了C++中DocumentPtr::findFirstChildElementChecked方法的典型用法代码示例。如果您正苦于以下问题:C++ DocumentPtr::findFirstChildElementChecked方法的具体用法?C++ DocumentPtr::findFirstChildElementChecked怎么用?C++ DocumentPtr::findFirstChildElementChecked使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DocumentPtr
的用法示例。
在下文中一共展示了DocumentPtr::findFirstChildElementChecked方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getPrivateProfile
//---------------------------------------------------------------------
ElementPtr PeerContactProfile::getPrivateProfile() const
{
AutoRecursiveLock lock(mLock);
if (!mDocument) return ElementPtr();
if (!hasContactProfileSecret()) return ElementPtr();
try {
ElementPtr contactProfileElement = getContactProfileElement();
if (!contactProfileElement) return ElementPtr();
ElementPtr privateElement = contactProfileElement->findFirstChildElementChecked("private");
ElementPtr profileElement = privateElement->findFirstChildElementChecked("encryptedProfile");
ElementPtr saltElement = privateElement->findFirstChildElementChecked("salt");
String saltAsBase64 = saltElement->getText(true);
SecureByteBlock output;
decryptAndNulTerminateFromBase64(
"profile",
mContactProfileSecret,
saltAsBase64,
profileElement->getText(true),
output
);
String parseData = (CSTR)((const BYTE *)output);
DocumentPtr temp = Document::create();
temp->parse(parseData);
ElementPtr result = temp->findFirstChildElementChecked("profile");
result->orphan();
return result;
} catch (zsLib::XML::Exceptions::CheckFailed &) {
}
return ElementPtr();
}
示例2: getPeerFilePublic
//---------------------------------------------------------------------
IPeerFilePublicPtr PeerContactProfile::getPeerFilePublic() const
{
AutoRecursiveLock lock(mLock);
PeerFilesPtr outer = mPeerFiles.lock();
if (outer) {
IPeerFilePublicPtr publicPeer = outer->getPublic();
if (publicPeer) return publicPeer;
}
if (!mDocument) return IPeerFilePublicPtr();
if (!hasContactProfileSecret()) return IPeerFilePublicPtr();
try {
ElementPtr contactProfileElement = getContactProfileElement();
if (!contactProfileElement) return IPeerFilePublicPtr();
ElementPtr privateElement = contactProfileElement->findFirstChildElementChecked("private");
ElementPtr encryptedPeerElement = privateElement->findFirstChildElementChecked("encryptedPeer");
ElementPtr saltElement = privateElement->findFirstChildElementChecked("salt");
String saltAsBase64 = saltElement->getText(true);
SecureByteBlock output;
decryptAndNulTerminateFromBase64(
"peer",
mContactProfileSecret,
saltAsBase64,
encryptedPeerElement->getText(true),
output
);
String parseData = (CSTR)((const BYTE *)output);
DocumentPtr temp = Document::create();
temp->parse(parseData);
ElementPtr result = temp->findFirstChildElementChecked("peer");
result->orphan();
PeerFilePublicPtr publicPeer = PeerFilePublic::loadFromXML(result);
return publicPeer;
} catch (zsLib::XML::Exceptions::CheckFailed &) {
}
return IPeerFilePublicPtr();
}