libvariant
 All Classes Namespaces Files Functions Enumerations Groups
Public Types | Public Member Functions | List of all members
libvariant::JSONParserImpl Class Reference

#include </home/gallen/repositories/libvariant/src/JSONParser.h>

Inheritance diagram for libvariant::JSONParserImpl:
libvariant::ParserImpl

Public Types

enum  Status_t {
  S_START, S_BEGIN, S_OK, S_ERROR,
  S_END, S_DONE
}
 

Public Member Functions

 JSONParserImpl (shared_ptr< ParserInput > i)
 
virtual int Run ()
 
Status_t GetStatus () const
 
virtual bool Done () const
 
virtual bool Error () const
 
virtual bool Ok () const
 
virtual std::string ErrorStr () const
 Return a string describing the last error suitable for presentation to a user.
 
unsigned GetLine () const
 
unsigned GetColumn () const
 
unsigned GetByteCount () const
 
virtual void Reset ()
 
- Public Member Functions inherited from libvariant::ParserImpl
virtual void PushAction (shared_ptr< ParserActions > action)
 
virtual shared_ptr< ParserActionsPopAction ()
 
ParserActionsTopAction ()
 

Additional Inherited Members

- Protected Attributes inherited from libvariant::ParserImpl
std::deque< shared_ptr
< ParserActions > > 
action_stack
 

Detailed Description

A class that encapsulates the JSON_parser with the Parser interface

Member Function Documentation

bool libvariant::JSONParserImpl::Done ( ) const
virtual

These three functiosn can be used to query the state later. Done means that a call to Process will immediately return 1 Error if Process threw an exception last Ok if everything looks good (Process never been called, or last return 0 or possibly -1)

Implements libvariant::ParserImpl.

JSONParserImpl::Status_t libvariant::JSONParserImpl::GetStatus ( ) const
Returns
the status of the parser.
void libvariant::JSONParserImpl::Reset ( )
virtual

Resets the parser to the state it was in when just constructed.

Implements libvariant::ParserImpl.

int libvariant::JSONParserImpl::Run ( )
virtual

Attempt to parse some actions. At least one ParserActions should be on the action stack.

Run is not guaranteed to be recursively callable from inside a ParserActions callback. Do not do that.

return 0 on success return 1 when done return -1 if needing more data is detected (not all parsers support this; can be treated as an error) throw on error

Implements libvariant::ParserImpl.


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