本文整理汇总了C++中XML::destroy方法的典型用法代码示例。如果您正苦于以下问题:C++ XML::destroy方法的具体用法?C++ XML::destroy怎么用?C++ XML::destroy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XML
的用法示例。
在下文中一共展示了XML::destroy方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load_xml
//.........这里部分代码省略.........
}
}
} else {
ACE_DEBUG((LM_ERROR, " /gather/network/sipaddr/@ip is null \n"));
}
//SevicesRules
values.clear();
if (xml.xpath("/gather/services/service/@id", values) == 0) {
std::vector<std::string>::const_iterator sid = values.begin();
int id = 0;
SevicesRules sevicesRules;
for (; sid != values.end(); sid++) {
id = atoi(sid->c_str());
int services;
int port;
memset(path, 0, 128);
snprintf(path, 128 - 1, "/gather/services/service[@id='%d']/@name", id);
std::vector<std::string> namelist;
if (xml.xpath(path, namelist) == 0) {
std::vector<std::string>::const_iterator name = namelist.begin();
for (; name != namelist.end(); name++) {
if ((services = ServiceDef::name2service(name->c_str())) < ServiceDef::SERVICE_OTHER) {
services = ServiceDef::SERVICE_OTHER;
}
}
} else {
ACE_DEBUG((LM_ERROR, " %s is null\n", path));
}
memset(path, 0, 128);
snprintf(path, 128 - 1, "/gather/services/service[@id='%d']/@port", id);
std::vector<std::string> portList;
if (xml.xpath(path, portList) == 0) {
std::vector<std::string>::const_iterator p = portList.begin();
for (; p != portList.end(); p++) {
port = atoi(p->c_str());
}
} else {
ACE_DEBUG((LM_ERROR, " %s is null\n", path));
}
memset(path, 0, 128);
snprintf(path, 128 - 1, "/gather/services/service[@id='%d']/sipaddr/@ip", id);
std::vector<std::string> sipaddrlist;
std::vector<ClientRules> clientRulesList;
if (xml.xpath(path, sipaddrlist) == 0) {
std::vector<std::string>::const_iterator sipaddr = sipaddrlist.begin();
for (; sipaddr != sipaddrlist.end(); sipaddr++) {
ClientRules client;
uint32_t sip;
uint32_t smask;
CIDR::cidr2addr(sipaddr->c_str(), sip, smask);
client.sip = sip;
client.smask = smask;
client.audit = ClientRules::DROP;
clientRulesList.push_back(client);
}
} else {
ACE_DEBUG((LM_ERROR, " %s is null\n", path));
}
memset(path, 0, 128);
snprintf(path, 128 - 1, "/gather/services/service[@id='%d']/dipaddr/@ip", id);
std::vector<std::string> dipaddrlist;
if (xml.xpath(path, dipaddrlist) == 0) {
std::vector<std::string>::const_iterator dipaddr = dipaddrlist.begin();
for (; dipaddr != dipaddrlist.end(); dipaddr++) {
SevicesRules sevices;
sevices.services = services;
sevices.dport = htons(port);
uint32_t sip;
uint32_t smask;
CIDR::cidr2addr(dipaddr->c_str(), sip, smask);
sevices.dip = sip;
sevices.dmask = smask;
sevices.rejectList = clientRulesList;
serviceList.push_back(sevices);
}
} else {
ACE_DEBUG((LM_ERROR, " %s is null\n", path));
}
}
} else {
ACE_DEBUG((LM_ERROR, "xml file handle is failde, error= %s\n", xml.error()));
}
xml.destroy();
return 0;
}