fipa_acl  1.4
Public Member Functions | Public Attributes | List of all members
BinDateTime< Iterator > Struct Template Reference

#include <grammar_bitefficient.h>

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

Public Member Functions

 BinDateTime ()
 

Public Attributes

qi::rule< Iterator,
fipa::acl::DateTime() > 
bin_date_time_rule
 
grammar::DateTime< Iterator > binDate
 
qi::rule< Iterator, char() > typeDesignator
 

Detailed Description

template<typename Iterator>
struct BinDateTime< Iterator >

Definition at line 164 of file grammar_bitefficient.h.

Constructor & Destructor Documentation

template<typename Iterator >
BinDateTime< Iterator >::BinDateTime ( )
inline

Definition at line 166 of file grammar_bitefficient.h.

166  : BinDateTime::base_type(bin_date_time_rule, "BinDateTime-bitefficient_grammar")
167  {
168  using qi::byte_;
169  using encoding::alpha;
170 
171  // Absolute time, relative +/-
172  // identifier indicate if typeDesignator follows or not
173  // NOTE: When parser fails, make sure the data forwarded to the parser really(!) contains
174  // all characters. Since 0x20 is a special character in normal ASCII some ways of reading the data
175  // or using std::copy might lead to an unexpected failure, since these special characters will be discarded
176  bin_date_time_rule = ( byte_(0x20) [ phoenix::at_c<0>(label::_val) = ' ' ]
177  >> binDate [ phoenix::at_c<1>(label::_val) = label::_1 ]
178  )
179  // Relative time (+)
180  | ( byte_(0x21) [ phoenix::at_c<0>(label::_val) = '+' ]
181  >> binDate [ phoenix::at_c<1>(label::_val) = label::_1 ]
182  )
183  // Relative time (-)
184  | ( byte_(0x22) [ phoenix::at_c<0>(label::_val) = '-' ]
185  >> binDate [ phoenix::at_c<1>(label::_val) = label::_1 ]
186  )
187  // Absolute time
188  | ( byte_(0x24) [ phoenix::at_c<0>(label::_val) = ' ' ]
189  >> binDate [ phoenix::at_c<1>(label::_val) = label::_1 ]
190  >> typeDesignator [ phoenix::at_c<2>(label::_val) = label::_1 ]
191  )
192  // Relative time (+)
193  | ( byte_(0x25) [ phoenix::at_c<0>(label::_val) = '+' ]
194  >> binDate [ phoenix::at_c<1>(label::_val) = label::_1 ]
195  >> typeDesignator [ phoenix::at_c<2>(label::_val) = label::_1 ]
196  )
197  // Relative time (-)
198  | ( byte_(0x26) [ phoenix::at_c<0>(label::_val) = '-' ]
199  >> binDate [ phoenix::at_c<1>(label::_val) = label::_1 ]
200  >> typeDesignator [ phoenix::at_c<2>(label::_val) = label::_1 ]
201  )
202  ;
203 
204  // Timezone for UTC is Z
205  typeDesignator = alpha [ label::_val = label::_1 ];
206 
207 
208  #ifdef BOOST_SPIRIT_DEBUG
209  BOOST_SPIRIT_DEBUG_NODE(typeDesignator);
211  #endif
212  }
qi::rule< Iterator, char() > typeDesignator
qi::rule< Iterator, fipa::acl::DateTime() > bin_date_time_rule
grammar::DateTime< Iterator > binDate
#define FIPA_DEBUG_RULE(X)

Member Data Documentation

template<typename Iterator >
qi::rule<Iterator, fipa::acl::DateTime() > BinDateTime< Iterator >::bin_date_time_rule

Definition at line 214 of file grammar_bitefficient.h.

template<typename Iterator >
grammar::DateTime<Iterator> BinDateTime< Iterator >::binDate

Definition at line 215 of file grammar_bitefficient.h.

template<typename Iterator >
qi::rule<Iterator, char() > BinDateTime< Iterator >::typeDesignator

Definition at line 216 of file grammar_bitefficient.h.


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