3 #include <boost/foreach.hpp>
4 #include <boost/lexical_cast.hpp>
12 TiXmlDeclaration * decl =
new TiXmlDeclaration(
"1.0",
"",
"" );
13 doc.LinkEndChild( decl );
15 TiXmlElement * envelopeElem =
new TiXmlElement(
"envelope" );
16 doc.LinkEndChild( envelopeElem );
22 elem->SetAttribute(
"index", index++);
23 envelopeElem->LinkEndChild(elem);
25 BOOST_FOREACH(TiXmlElement* elem, getAllExternalEnvelopes(envelope))
27 elem->SetAttribute(
"index", index++);
28 envelopeElem->LinkEndChild(elem);
32 printer.SetIndent(
"");
33 printer.SetLineBreak(
"");
37 doc.Accept( &printer );
41 std::vector< TiXmlElement* > XMLEnvelopeFormat::getAllExternalEnvelopes(
const ACLEnvelope& envelope)
const
43 std::vector<TiXmlElement*> vec;
47 ACLBaseEnvelopeList::const_iterator cit = list.begin();
48 for(; cit != list.end(); ++cit)
50 vec.push_back(getBaseEnvelope(*cit));
56 TiXmlElement* XMLEnvelopeFormat::getBaseEnvelope(
const ACLBaseEnvelope& envelope)
const
58 TiXmlElement* element =
new TiXmlElement(
"params");
60 BOOST_FOREACH(TiXmlElement* elem, getParameters(envelope))
62 element->LinkEndChild(elem);
67 std::vector<TiXmlElement*> XMLEnvelopeFormat::getParameters(
const ACLBaseEnvelope& envelope)
const
69 std::vector<TiXmlElement*> vec;
73 TiXmlElement* to =
new TiXmlElement(
"to");
77 to->LinkEndChild(elem);
84 TiXmlElement* from =
new TiXmlElement(
"from");
92 TiXmlElement* comments =
new TiXmlElement(
"comments");
93 comments->LinkEndChild(
new TiXmlText(envelope.getComments()));
94 vec.push_back(comments);
99 TiXmlElement* aclRep =
new TiXmlElement(
"acl-representation");
100 aclRep->LinkEndChild(
new TiXmlText(envelope.getACLRepresentationString()));
101 vec.push_back(aclRep);
106 TiXmlElement* payloadLength =
new TiXmlElement(
"payload-length");
107 payloadLength->LinkEndChild(
new TiXmlText(boost::lexical_cast<std::string>(envelope.getPayloadLength())));
108 vec.push_back(payloadLength);
113 TiXmlElement* payloadEncoding=
new TiXmlElement(
"payload-encoding");
114 payloadEncoding->LinkEndChild(
new TiXmlText(envelope.getPayloadEncoding()));
115 vec.push_back(payloadEncoding);
127 TiXmlElement* intendedReceivers =
new TiXmlElement(
"intended-receiver");
131 intendedReceivers->LinkEndChild(elem);
133 vec.push_back(intendedReceivers);
const std::string & getPayload() const
const ACLBaseEnvelopeList & getExtraEnvelopes() const
ACLMessage envelope (also typed as fipa::acl::Letter) includes the base envelope and updated fields...
const ACLBaseEnvelope & getBaseEnvelope() const
std::vector< ACLBaseEnvelope > ACLBaseEnvelopeList