fipa_acl  1.4
Public Member Functions | Public Attributes | List of all members
fipa::acl::grammar::string::Message< Iterator, Skipper > Struct Template Reference

#include <grammar_string_message.h>

Inherits grammar< Iterator, fipa::acl::ACLMessage(), Skipper >.

Public Member Functions

 Message ()
 

Public Attributes

AgentIdentifier< Iterator, Skipper > agentId
 
AgentIdentifierSet< Iterator, Skipper > agentIdList
 
grammar::String< Iterator > content
 
grammar::Word< Iterator > word
 
DateTime< Iterator > dateTime
 
Expression< Iterator, Skipper > expression
 
qi::rule< Iterator, std::string()> messageType
 
qi::rule< Iterator, fipa::acl::ACLMessage(), Skipper > aclCommunicativeAct
 
UserdefinedParameter< Iterator > userdefinedParam
 
WordWithoutKeyword< Iterator > wordWithoutKeyword
 

Detailed Description

template<typename Iterator, typename Skipper = qi::unused_type>
struct fipa::acl::grammar::string::Message< Iterator, Skipper >

Definition at line 437 of file grammar_string_message.h.

Constructor & Destructor Documentation

template<typename Iterator , typename Skipper = qi::unused_type>
fipa::acl::grammar::string::Message< Iterator, Skipper >::Message ( )
inline

Definition at line 439 of file grammar_string_message.h.

439  : Message::base_type(aclCommunicativeAct, "message-string_grammar")
440  {
441  using namespace fipa::acl;
442  using namespace MessageField;
443 
444  // To avoid namespace clashes with boost::bind
445  namespace label = qi::labels;
446 
447  aclCommunicativeAct = "("
448  >> messageType [ phoenix::at_c<0>(label::_val) = label::_1 ]
449  >> *( qi::no_case[
450  qi::lit(":" + MessageFieldTxt[SENDER]) >> agentId [ phoenix::at_c<1>(label::_val) = label::_1 ]
451  | qi::lit(":" + MessageFieldTxt[RECEIVER]) >> agentIdList [ phoenix::at_c<2>(label::_val) = label::_1 ]
452  | qi::lit(":" + MessageFieldTxt[CONTENT]) >> content [ phoenix::at_c<3>(label::_val) = label::_1 ]
453  | qi::lit(":" + MessageFieldTxt[REPLY_WITH]) >> expression [ phoenix::at_c<4>(label::_val) = label::_1 ]
454  | qi::lit(":" + MessageFieldTxt[REPLY_BY]) >> dateTime [ phoenix::at_c<5>(label::_val) = label::_1 ]
455  | qi::lit(":" + MessageFieldTxt[IN_REPLY_TO]) >> expression [ phoenix::at_c<6>(label::_val) = label::_1 ]
456  | qi::lit(":" + MessageFieldTxt[REPLY_TO]) >> agentIdList [ phoenix::at_c<7>(label::_val) = label::_1 ]
457  | qi::lit(":" + MessageFieldTxt[LANGUAGE]) >> expression [ phoenix::at_c<8>(label::_val) = label::_1 ]
458  | qi::lit(":" + MessageFieldTxt[ENCODING]) >> expression [ phoenix::at_c<9>(label::_val) = label::_1 ]
459  | qi::lit(":" + MessageFieldTxt[ONTOLOGY]) >> expression [ phoenix::at_c<10>(label::_val) = label::_1 ]
460  | qi::lit(":" + MessageFieldTxt[PROTOCOL]) >> wordWithoutKeyword [ phoenix::at_c<11>(label::_val) = label::_1 ]
461  | qi::lit(":" + MessageFieldTxt[CONVERSATION_ID]) >> expression [ phoenix::at_c<12>(label::_val) = label::_1 ]
462  | userdefinedParam [ phoenix::at_c<13>(label::_val) = label::_1 ]
463  ])
464  >> ")";
465 
466  messageType = qi::no_case[
467  qi::string(PerformativeTxt[ACLMessage::ACCEPT_PROPOSAL]) [ label::_val = label::_1 ]
468  | qi::string(PerformativeTxt[ACLMessage::AGREE]) [ label::_val = label::_1 ]
469  | qi::string(PerformativeTxt[ACLMessage::CANCEL]) [ label::_val = label::_1 ]
470  | qi::string(PerformativeTxt[ACLMessage::CALL_FOR_PROPOSAL]) [ label::_val = label::_1 ]
471  | qi::string(PerformativeTxt[ACLMessage::CONFIRM]) [ label::_val = label::_1 ]
472  | qi::string(PerformativeTxt[ACLMessage::DISCONFIRM]) [ label::_val = label::_1 ]
473  | qi::string(PerformativeTxt[ACLMessage::FAILURE]) [ label::_val = label::_1 ]
474  | qi::string(PerformativeTxt[ACLMessage::INFORM_IF]) [ label::_val = label::_1 ]
475  | qi::string(PerformativeTxt[ACLMessage::INFORM_REF]) [ label::_val = label::_1 ]
476  | qi::string(PerformativeTxt[ACLMessage::INFORM]) [ label::_val = label::_1 ]
477  | qi::string(PerformativeTxt[ACLMessage::NOT_UNDERSTOOD]) [ label::_val = label::_1 ]
478  | qi::string(PerformativeTxt[ACLMessage::PROPAGATE]) [ label::_val = label::_1 ]
479  | qi::string(PerformativeTxt[ACLMessage::PROPOSE]) [ label::_val = label::_1 ]
480  | qi::string(PerformativeTxt[ACLMessage::PROXY]) [ label::_val = label::_1 ]
481  | qi::string(PerformativeTxt[ACLMessage::QUERY_IF]) [ label::_val = label::_1 ]
482  | qi::string(PerformativeTxt[ACLMessage::QUERY_REF]) [ label::_val = label::_1 ]
483  | qi::string(PerformativeTxt[ACLMessage::REFUSE]) [ label::_val = label::_1 ]
484  | qi::string(PerformativeTxt[ACLMessage::REJECT_PROPOSAL]) [ label::_val = label::_1 ]
485  // order from most specific to least specific, to avoid early parsing success
486  | qi::string(PerformativeTxt[ACLMessage::REQUEST_WHENEVER]) [ label::_val = label::_1 ]
487  | qi::string(PerformativeTxt[ACLMessage::REQUEST_WHEN]) [ label::_val = label::_1 ]
488  | qi::string(PerformativeTxt[ACLMessage::REQUEST]) [ label::_val = label::_1 ]
489  | qi::string(PerformativeTxt[ACLMessage::SUBSCRIBE]) [ label::_val = label::_1 ]
490  ];
491 
492  FIPA_DEBUG_RULE(messageType);
493  }
qi::rule< Iterator, fipa::acl::ACLMessage(), Skipper > aclCommunicativeAct
qi::rule< Iterator, std::string()> messageType
std::map< MessageField::Type, std::string > MessageFieldTxt
UserdefinedParameter< Iterator > userdefinedParam
AgentIdentifierSet< Iterator, Skipper > agentIdList
AgentIdentifier< Iterator, Skipper > agentId
std::map< ACLMessage::Performative, std::string > PerformativeTxt
Definition: acl_message.cpp:15
WordWithoutKeyword< Iterator > wordWithoutKeyword
#define FIPA_DEBUG_RULE(X)
Agent Communication Language.
Definition: conversation.cpp:7
Expression< Iterator, Skipper > expression

Member Data Documentation

template<typename Iterator , typename Skipper = qi::unused_type>
qi::rule<Iterator, fipa::acl::ACLMessage(), Skipper> fipa::acl::grammar::string::Message< Iterator, Skipper >::aclCommunicativeAct

Definition at line 503 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
AgentIdentifier<Iterator, Skipper> fipa::acl::grammar::string::Message< Iterator, Skipper >::agentId

Definition at line 496 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
AgentIdentifierSet<Iterator, Skipper> fipa::acl::grammar::string::Message< Iterator, Skipper >::agentIdList

Definition at line 497 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
grammar::String<Iterator> fipa::acl::grammar::string::Message< Iterator, Skipper >::content

Definition at line 498 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
DateTime<Iterator> fipa::acl::grammar::string::Message< Iterator, Skipper >::dateTime

Definition at line 500 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
Expression<Iterator, Skipper> fipa::acl::grammar::string::Message< Iterator, Skipper >::expression

Definition at line 501 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
qi::rule<Iterator, std::string()> fipa::acl::grammar::string::Message< Iterator, Skipper >::messageType

Definition at line 502 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
UserdefinedParameter<Iterator> fipa::acl::grammar::string::Message< Iterator, Skipper >::userdefinedParam

Definition at line 504 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
grammar::Word<Iterator> fipa::acl::grammar::string::Message< Iterator, Skipper >::word

Definition at line 499 of file grammar_string_message.h.

template<typename Iterator , typename Skipper = qi::unused_type>
WordWithoutKeyword<Iterator> fipa::acl::grammar::string::Message< Iterator, Skipper >::wordWithoutKeyword

Definition at line 505 of file grammar_string_message.h.


The documentation for this struct was generated from the following file: