#ifndef __Parser_h__ #define __Parser_h__ #include #include namespace coreutils { /// /// Use the StreamReader to read data from a socket and buffer it for use by /// various stream parsers such as IMFMessage. The reader maintains data /// consistency regardless of the packet delivery for the stream. /// class Parser : public MString { public: /// /// /// Parser(int socket); /// /// /// enum class Status { COMPLETE, INCOMPLETE, DATA_AVAIL }; /// /// /// virtual ~Parser(); /// /// doParse is the entry and re-entry point method to continue the parsing process. /// Status doParse(); /// /// Inside of parse() you can call another parser object with the checkParse method to /// determine if the parsing should branch to the new passed parsing object. /// bool checkParse(Parser &parser); <--- can be called in parse to see if the parsing should branch /// /// /// virtual Status parse(); protected: MString buffer; private: int socket; Parser *parser; vector chain; }; } #endif