本文整理汇总了C++中XmlNode::set_attribute方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlNode::set_attribute方法的具体用法?C++ XmlNode::set_attribute怎么用?C++ XmlNode::set_attribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlNode
的用法示例。
在下文中一共展示了XmlNode::set_attribute方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Implementation
Implementation(const URI& file) :
filename(build_filename(file, PE::Comm::instance().rank())),
xml_filename(file),
index(0),
xml_doc("1.0", "ISO-8859-1"),
m_total_count(0)
{
const Uint v = version();
out_file.open(filename, std::ios_base::out | std::ios_base::binary);
out_file.write(reinterpret_cast<const char*>(&v), sizeof(Uint));
PE::Comm& comm = PE::Comm::instance();
// Rank 0 writes out an XML file that lists all filenames for all CPUs
if(comm.rank() == 0)
{
XmlNode cfbinary = xml_doc.add_node("cfbinary");
cfbinary.set_attribute("version", to_str(version()));
node_xml_data.reserve(comm.size());
XmlNode node_list = cfbinary.add_node("nodes");
for(Uint i = 0; i != comm.size(); ++i)
{
XmlNode node = node_list.add_node("node");
node.set_attribute("filename", build_filename(file, i));
node.set_attribute("rank", to_str(i));
node_xml_data.push_back(node);
}
}
}
示例2: xmldoc
boost::shared_ptr<XmlDoc> Protocol::create_doc ()
{
boost::shared_ptr<XmlDoc> xmldoc ( new XmlDoc("1.0", "UTF-8") );
XmlDoc& doc = *xmldoc.get();
// add root node
XmlNode root = doc.add_node( Tags::node_doc() );
root.set_attribute("version", "1.0");
root.set_attribute("type", "message");
return xmldoc;
}
示例3: add_signal
void CJournal::add_signal ( const SignalArgs & signal_node )
{
rapidxml::xml_attribute<> * type_attr = signal_node.node.content->first_attribute("type");
if( m_options["RecordReplies"].value<bool>() ||
(type_attr != nullptr && std::strcmp(type_attr->value(), "signal") == 0) )
{
XmlNode copy = copy_node(signal_node.node, m_signals_map.content);
boost::posix_time::ptime now = boost::posix_time::second_clock::local_time();
copy.set_attribute("time", boost::posix_time::to_simple_string(now));
}
}
示例4: SignalFrame
SignalFrame & SignalFrame::map ( const std::string & name )
{
cf3_assert ( node.is_valid() );
cf3_assert ( !name.empty() );
if( m_maps.find(name) == m_maps.end() ) // if the node does not exist yet, we create it
{
XmlNode node = main_map.content.add_node( Protocol::Tags::node_value() );
node.set_attribute( Protocol::Tags::attr_key(), name );
m_maps[name] = SignalFrame(node); // SignalFrame() adds a map under the node
}
return m_maps[name];
}
示例5: add_signal_frame
XmlNode Protocol::add_signal_frame ( XmlNode& node, const std::string & target,
const URI & sender, const URI & receiver,
bool user_trans )
{
cf3_assert(sender.scheme() == URI::Scheme::CPATH);
cf3_assert(receiver.scheme() == URI::Scheme::CPATH);
XmlNode signalnode = node.add_node( Tags::node_frame() );
signalnode.set_attribute( "type", Tags::node_type_signal() );
signalnode.set_attribute( "target", target );
signalnode.set_attribute( "sender", sender.string() );
signalnode.set_attribute( "receiver", receiver.string() );
signalnode.set_attribute( "transaction", user_trans ? "user" : "auto" );
signalnode.set_attribute( "frameid", common::UUCount().string() );
return signalnode;
}
示例6: copy_node
XmlNode CJournal::copy_node(const XmlNode & in, XmlNode & out) const
{
rapidxml::xml_node<>* content = in.content;
XmlNode copy = out.add_node(content->name(), content->value());
rapidxml::xml_attribute<>* attr = content->first_attribute();
XmlNode node( content->first_node() );
while( attr != nullptr )
{
copy.set_attribute(attr->name(), attr->value());
attr = attr->next_attribute();
}
while( node.is_valid() )
{
copy_node(node, copy);
node = node.content->next_sibling();
}
return copy;
}
示例7: add_signal_frame
XmlNode Protocol::add_signal_frame ( XmlNode& node, const std::string & target,
const URI & sender, const URI & receiver,
bool user_trans )
{
cf_assert(sender.scheme() == URI::Scheme::CPATH);
cf_assert(receiver.scheme() == URI::Scheme::CPATH);
std::string uuid = boost::lexical_cast<std::string>(boost::uuids::random_generator()());
XmlNode signalnode = node.add_node( Tags::node_frame() );
signalnode.set_attribute( "type", Tags::node_type_signal() );
signalnode.set_attribute( "target", target );
signalnode.set_attribute( "sender", sender.string() );
signalnode.set_attribute( "receiver", receiver.string() );
signalnode.set_attribute( "transaction", user_trans ? "user" : "auto" );
signalnode.set_attribute( "frameid", uuid );
return signalnode;
}
示例8: add_reply_frame
XmlNode Protocol::add_reply_frame ( XmlNode& node )
{
cf3_assert( node.is_valid() );
cf3_assert( is_not_null(node.content->parent()) );
rapidxml::xml_node<>* xml_node = node.content;
XmlNode replynode = XmlNode(node.content->parent()).add_node( Tags::node_frame());
replynode.set_attribute( "type", Tags::node_type_reply() );
// reply with same target
rapidxml::xml_attribute<>* target_att = xml_node->first_attribute("target");
std::string target = is_not_null(target_att) ? target_att->value() : "";
replynode.set_attribute("target", target);
// the sender becomes the receiver
rapidxml::xml_attribute<>* sender_att = xml_node->first_attribute("sender");
std::string receiver = is_not_null(sender_att) ? sender_att->value() : "";
replynode.set_attribute("receiver", receiver);
// same transaction type
rapidxml::xml_attribute<>* trans_att = xml_node->first_attribute("transaction");
std::string trans = is_not_null(trans_att) ? trans_att->value() : "auto";
replynode.set_attribute("transaction", trans);
// copy uuids, if any
rapidxml::xml_attribute<>* client_uuid_att = xml_node->first_attribute( Tags::attr_clientid() );
rapidxml::xml_attribute<>* frame_uuid_att = xml_node->first_attribute( Tags::attr_frameid() );
if( is_not_null(client_uuid_att) )
replynode.set_attribute(Tags::attr_clientid(), client_uuid_att->value());
if( is_not_null(frame_uuid_att) )
replynode.set_attribute(Tags::attr_frameid(), frame_uuid_att->value() );
return replynode;
// return XmlNode();
}