My Project
Public Types | Public Member Functions | List of all members
ParaEngine::CInterProcessMessageIn_parser Class Reference

for parsing incoming messages. More...

#include <InterprocessQueue.hpp>

Public Types

enum  Consume_Result {
  c_res_indeterminate, c_res_true, c_res_false, c_res_code_body1,
  c_res_code_body2, c_res_code_body3
}
 

Public Member Functions

 CInterProcessMessageIn_parser ()
 Construct ready to parse the InterProcessMessageIn method.
 
void reset ()
 Reset to initial parser state.
 
template<typename InputIterator >
boost::tuple< boost::tribool, InputIterator > parse (InterProcessMessageIn &req, InputIterator begin, InputIterator end)
 Parse some data. More...
 

Detailed Description

for parsing incoming messages.

—++ NPL InterProcessMessage Format The NPL generic message format is as follows:

<verbatim> m_method[' '(1byte)] // (method name string such as "NPL" followed by a space) m_nMsgType(4Bytes) m_nParam1(4Bytes) m_nParam2(4Bytes) m_from_length:[...m_from_length bytes] // m_from name m_filename_length:[...m_filename_length bytes] m_code_length:[...m_code_length bytes] </verbatim>

The following is an example message, where [DWORD] means 4 bytes <verbatim> NPL [DWORD][DWORD][DWORD]11:MyQueueName8:test.lua11:msg={p1=10} </verbatim>

Member Function Documentation

§ parse()

template<typename InputIterator >
boost::tuple<boost::tribool, InputIterator> ParaEngine::CInterProcessMessageIn_parser::parse ( InterProcessMessageIn req,
InputIterator  begin,
InputIterator  end 
)
inline

Parse some data.

The tribool return value is true when a complete InterProcessMessageIn has been parsed, false if the data is invalid, indeterminate when more data is required. The InputIterator return value indicates how much of the input has been consumed.


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