本文整理汇总了C++中XMLTag::GetEmbeddedTagByName方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLTag::GetEmbeddedTagByName方法的具体用法?C++ XMLTag::GetEmbeddedTagByName怎么用?C++ XMLTag::GetEmbeddedTagByName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLTag
的用法示例。
在下文中一共展示了XMLTag::GetEmbeddedTagByName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ParseDestination
void RCFSourceInfo::ParseDestination(XMLTag* destTag, UInt32 index)
{
XMLTag* prefTag;
prefTag = destTag->GetEmbeddedTagByNameAndAttr("PREF", "NAME", "out_addr");
if (prefTag != NULL)
{
char* outAddrStr = prefTag->GetValue();
if (outAddrStr != NULL)
fOutputArray[index].fLocalAddr = SocketUtils::ConvertStringToAddr(outAddrStr);
}
prefTag = destTag->GetEmbeddedTagByNameAndAttr("PREF", "NAME", "dest_addr");
if (prefTag != NULL)
{
char* destAddrStr = prefTag->GetValue();
if (destAddrStr != NULL)
fOutputArray[index].fDestAddr = SocketUtils::ConvertStringToAddr(destAddrStr);
}
prefTag = destTag->GetEmbeddedTagByNameAndAttr("PREF", "NAME", "ttl");
if (prefTag != NULL)
{
char* ttlStr = prefTag->GetValue();
if (ttlStr != NULL)
fOutputArray[index].fTimeToLive = atoi(ttlStr);
}
prefTag = destTag->GetEmbeddedTagByNameAndAttr("LIST-PREF", "NAME", "udp_ports");
if (prefTag != NULL)
{
fOutputArray[index].fNumPorts = prefTag->GetNumEmbeddedTags();
fOutputArray[index].fPortArray = new UInt16[fOutputArray[index].fNumPorts];
::memset(fOutputArray[index].fPortArray, 0, fOutputArray[index].fNumPorts * sizeof(UInt16));
for (UInt32 x = 0; x < fOutputArray[index].fNumPorts; x++)
{
XMLTag* portTag = prefTag->GetEmbeddedTagByName("VALUE", x);
if (portTag != NULL)
{
char* portStr = portTag->GetValue();
if (portStr != NULL)
{
fOutputArray[index].fPortArray[x] = atoi(portStr);
}
}
}
}
else
{
prefTag = destTag->GetEmbeddedTagByNameAndAttr("PREF", "NAME", "udp_base_port");
if (prefTag == NULL)
qtss_printf("Missing both 'udp_base_port' and 'udp_ports' tags.\n Cannot set up the destination!\n");
else
{
char* basePortStr = prefTag->GetValue();
if (basePortStr != NULL)
fOutputArray[index].fBasePort = atoi(basePortStr);
}
}
}
示例2: Parse
void RCFSourceInfo::Parse(XMLTag* relayTag)
{
XMLTag* sourceTag = relayTag->GetEmbeddedTagByNameAndAttr("OBJECT", "CLASS", "source");
if (sourceTag == NULL)
return;
fNumStreams = 0;
UInt32 destIPAddr = 0;
UInt32 srcIPAddr = 0;
UInt16 ttl = 0;
XMLTag* prefTag;
prefTag = sourceTag->GetEmbeddedTagByNameAndAttr("PREF", "NAME", "in_addr");
if (prefTag != NULL)
{
char* destAddrStr = prefTag->GetValue();
if (destAddrStr != NULL)
destIPAddr = SocketUtils::ConvertStringToAddr(destAddrStr);
}
prefTag = sourceTag->GetEmbeddedTagByNameAndAttr("PREF", "NAME", "source_addr");
if (prefTag != NULL)
{
char* srcAddrStr = prefTag->GetValue();
if (srcAddrStr != NULL)
srcIPAddr = SocketUtils::ConvertStringToAddr(srcAddrStr);
}
prefTag = sourceTag->GetEmbeddedTagByNameAndAttr("PREF", "NAME", "ttl");
if (prefTag != NULL)
{
char* ttlStr = prefTag->GetValue();
if (ttlStr != NULL)
ttl = atoi(ttlStr);
}
prefTag = sourceTag->GetEmbeddedTagByNameAndAttr("LIST-PREF", "NAME", "udp_ports");
if (prefTag != NULL)
{
fNumStreams = prefTag->GetNumEmbeddedTags();
// Allocate a proper sized stream array
fStreamArray = new StreamInfo[fNumStreams];
for (UInt32 x = 0; x < fNumStreams; x++)
{
XMLTag* portTag = prefTag->GetEmbeddedTagByName("VALUE", x);
int port = 0;
if (portTag != NULL)
{
char* portStr = portTag->GetValue();
if (portStr != NULL)
port = atoi(portStr);
}
// Setup all the StreamInfo structures
fStreamArray[x].fSrcIPAddr = srcIPAddr;
fStreamArray[x].fDestIPAddr = destIPAddr;
fStreamArray[x].fPort = port;
fStreamArray[x].fTimeToLive = ttl;
fStreamArray[x].fPayloadType = qtssUnknownPayloadType;
fStreamArray[x].fTrackID = x + 1;
}
}
// Now go through all the relay_destination lines (starting from the next line after the
// relay_source line.
this->ParseRelayDestinations(relayTag);
}