1 #ifndef FIPA_ACL_GRAMMAR_ENVELOPE_BITEFFICIENT_H
2 #define FIPA_ACL_GRAMMAR_ENVELOPE_BITEFFICIENT_H
3 #include <fipa_acl/message_generator/acl_envelope.h>
4 #include <fipa_acl/message_parser/grammar/grammar_bitefficient.h>
16 (
const std::string&,
const std::string&, obj.getPayload(), obj.setPayload(val))
23 (
const std::string& ,
const std::string&, obj.getACLRepresentationString(), obj.setACLRepresentation(val))
27 (
const base::Time&,
const base::Time&, obj.getDate(), obj.setDate(val))
39 (
const base::Time&,
const base::Time&, obj.getDate(), obj.setDate(val))
55 template <
typename T0,
typename T1>
61 template <
typename T0,
typename T1>
64 return base.
merge(extra);
71 namespace bitefficient {
73 template<
typename Iterator>
74 struct Any : qi::grammar<Iterator, std::string()>
88 template<
typename Iterator>
89 struct Url : qi::grammar<Iterator, std::string()>
100 template<
typename Iterator>
108 >> -
addresses [ phoenix::at_c<1>(label::_val) = label::_1 ]
109 >> -
resolvers [ phoenix::at_c<2>(label::_val) = label::_1 ]
124 >>
any [ phoenix::at_c<1>(label::_val) = label::_1 ]
127 #ifdef BOOST_SPIRIT_DEBUG
141 qi::rule<Iterator, std::vector<std::string>() >
addresses;
142 qi::rule<Iterator, std::vector<fipa::acl::AgentID>() >
resolvers;
153 template <
typename Iterator>
162 >> -
from [ phoenix::at_c<1>(label::_val) = label::_1 ]
163 >> -
id [ phoenix::at_c<3>(label::_val) = label::_1 ]
164 >> -
via [ phoenix::at_c<4>(label::_val) = label::_1 ]
170 from = byte_(0x02) >>
url [ label::_val = label::_1 ];
184 qi::rule<Iterator, fipa::acl::URL()>
from;
185 qi::rule<Iterator, fipa::acl::ID()>
id;
186 qi::rule<Iterator, fipa::acl::Via()>
via;
198 template <
typename Iterator>
199 struct Envelope : qi::grammar<Iterator, fipa::acl::ACLEnvelope()>
204 namespace label = qi::labels;
207 >>
baseEnvelope [ phoenix::at_c<0>(label::_val) = label::_1 ]
208 >>
payload [ phoenix::at_c<2>(label::_val) = label::_1]
223 >>
envLen [ phoenix::at_c<4>(label::_val) = label::_1 ]
229 >>
envLen [ phoenix::at_c<4>(label::_val) = label::_1 ]
236 >>
len32 [ label::_val = label::_1 ]
239 baseMsgId = byte_(0xfe) [ label::_val = 0xfe ];
240 extMsgId = byte_(0xfd) [ label::_val = 0xfd ];
255 >>
parameterName [ phoenix::at_c<0>(label::_val) = label::_1 ]
260 | byte_(0x03) >>
agentIdentifier [ phoenix::at_c<1>(label::_val) = label::_1 ]
266 | byte_(0x09) >>
intendedReceiver [ phoenix::at_c<7>(label::_val) = label::_1 ]
267 | byte_(0x0a) >>
receivedObject [ phoenix::at_c<8>(label::_val) = label::_1 ]
282 payload = *byte_ [ label::_val += label::_1 ];
292 qi::rule<Iterator, fipa::acl::ACLBaseEnvelope(), qi::locals<fipa::acl::ACLBaseEnvelope> >
extEnvelope;
295 qi::rule<Iterator, fipa::acl::ACLBaseEnvelope(), qi::locals<fipa::acl::ACLBaseEnvelope> >
baseEnvelope;
296 qi::rule<Iterator, fipa::acl::ACLBaseEnvelope()>
parameter;
312 qi::rule<Iterator, boost::uint_least32_t()>
envLen;
340 #endif // FIPA_ACL_GRAMMAR_ENVELOPE_BITEFFICIENT_H
NullTerminatedString< Iterator > nullTerminatedString
ReceivedObject< Iterator > receivedObject
std::string TransportBehaviour
qi::rule< Iterator, fipa::acl::AgentID() > agent_identifier_rule
qi::rule< Iterator, fipa::acl::ID()> id
FIPA_ACL_FUSION_ADAPT(fipa::acl::ACLEnvelope,(const fipa::acl::ACLBaseEnvelope &, const fipa::acl::ACLBaseEnvelope &, obj.getBaseEnvelope(), obj.setBaseEnvelope(val))(const fipa::acl::ACLBaseEnvelopeList &, const fipa::acl::ACLBaseEnvelopeList &, obj.getExtraEnvelopes(), obj.addExtraEnvelope(val))(const std::string &, const std::string &, obj.getPayload(), obj.setPayload(val)))
The ACLBaseEnvelope defines the layout for an envelope with which ACLMessage data can be wrapped...
NullTerminatedString< Iterator > keyword
qi::rule< Iterator > extMsgId
EndOfCollection< Iterator > endOfCollection
BinExpression< Iterator > binExpression
qi::rule< Iterator, fipa::acl::UserdefParam()> userDefinedParameter
ACLMessage envelope (also typed as fipa::acl::Letter) includes the base envelope and updated fields...
qi::rule< Iterator, fipa::acl::UserdefParam() > userDefinedParameter
qi::rule< Iterator, fipa::acl::UserDefinedParameter() > userDefinedParameter
qi::rule< Iterator, std::vector< std::string >) > urlCollection
Any< Iterator > transportBehaviour
qi::rule< Iterator, fipa::acl::ACLBaseEnvelope()> extEnvelopeHeader
qi::rule< Iterator, fipa::acl::ReceivedObject()> received_object_rule
qi::rule< Iterator, fipa::acl::ACLBaseEnvelope(), qi::locals< fipa::acl::ACLBaseEnvelope > > extEnvelope
qi::rule< Iterator, boost::uint_least32_t()> jumboEnvelope
std::vector< UserdefParam > UserdefinedParameterList
BinDateTime< Iterator > date
qi::rule< Iterator, fipa::acl::ACLBaseEnvelope()> baseEnvelopeHeader
ACLBaseEnvelope merge(const ACLBaseEnvelope &other) const
qi::rule< Iterator > baseMsgId
NullTerminatedString< Iterator > comments
qi::rule< Iterator, fipa::acl::ACLEnvelope()> message_envelope_rule
qi::rule< Iterator, std::string() > payload
NullTerminatedString< Iterator > nullTerminatedString
phoenix::function< convertStringToNumberImpl > convertStringToNumber
phoenix::function< convertToStringImpl > convertToString
fipa::acl::ACLBaseEnvelope result_type
std::vector< AgentID > AgentIDList
qi::rule< Iterator, std::string()> parameterValue
BinWord< Iterator > binWord
NullTerminatedString< Iterator > nullTerminatedString
qi::rule< Iterator, std::string()> userDefinedACLRepresentation
qi::rule< Iterator, std::vector< fipa::acl::AgentID >) > intendedReceiver
qi::rule< Iterator, fipa::acl::UserdefinedParameterList() > userDefinedParameters
qi::rule< Iterator, fipa::acl::ACLBaseEnvelope() > predefinedParameter
result_type operator()(T0 base, T1 extra) const
BinStringNoCodetable< Iterator > binStringNoCodetable
const std::string TypeTxt[]
qi::rule< Iterator, std::string()> parameterName
BOOST_FUSION_ADAPT_STRUCT(fipa::acl::envelope::Parameter,(std::string, name)(fipa::acl::envelope::ParameterValue, data))
std::vector< ACLBaseEnvelope > ACLBaseEnvelopeList
qi::rule< Iterator, boost::uint_least32_t()> envLen
std::string ParameterValue
BinStringNoCodetable< Iterator > binStringNoCodetable
EndOfCollection< Iterator > endOfCollection
qi::rule< Iterator, std::vector< fipa::acl::AgentID >) > resolvers
qi::rule< Iterator, std::vector< fipa::acl::AgentID >) > agentIdentifierSequence
qi::rule< Iterator, fipa::acl::Via()> via
phoenix::function< mergeBaseEnvelopeImpl > mergeBaseEnvelope
qi::rule< Iterator, fipa::acl::URL()> from
qi::rule< Iterator, std::string()> url_rule
qi::rule< Iterator, fipa::acl::UserdefinedParameterList() > customParameterList
qi::rule< Iterator, std::vector< std::string >) > addresses
phoenix::function< convertToBaseTimeImpl > convertToBaseTime
EndOfCollection< Iterator > endOfEnvelope
qi::rule< Iterator, std::string()> aclRepresentation
NullTerminatedString< Iterator > nullTerminatedString
EnvelopeAgentIdentifier()
qi::rule< Iterator, std::string() > any_rule
EndOfCollection< Iterator > endOfCollection
#define FIPA_DEBUG_RULE(X)
std::string PayloadEncoding
qi::rule< Iterator, std::vector< fipa::acl::UserdefParam >) > userDefinedParameters
qi::rule< Iterator, fipa::acl::UserdefParam()> userDefinedMessageParameter
EnvelopeAgentIdentifier< Iterator > agentIdentifier
qi::rule< Iterator, fipa::acl::ACLBaseEnvelope()> parameter
Implements the general AgentID functionality, which is present throughout the fipa specifications(FIP...
BinDateTime< Iterator > date
NullTerminatedString< Iterator > payloadEncoding
BinNumber< Iterator > payloadLength
NullTerminatedString< Iterator > agentName
qi::rule< Iterator, fipa::acl::ACLBaseEnvelope(), qi::locals< fipa::acl::ACLBaseEnvelope > > baseEnvelope