#ifndef __STG_STGLIBS_SRVCONF_PARSER_GET_USER_H__
#define __STG_STGLIBS_SRVCONF_PARSER_GET_USER_H__
-#include "parser.h"
-#include "property_parsers.h"
+#include "base.h"
+#include "property.h"
#include "stg/servconf_types.h"
class PARSER: public STG::PARSER
{
public:
- PARSER();
+ typedef GET_USER::INFO INFO;
+
+ PARSER(CALLBACK f, void * data, const std::string & encoding);
virtual ~PARSER();
int ParseStart(const char * el, const char ** attr);
void ParseEnd(const char * el);
- void SetCallback(CALLBACK f, void * data);
+ void Failure(const std::string & reason) { callback(false, reason, info, data); }
private:
PROPERTY_PARSERS propertyParsers;
CALLBACK callback;
void * data;
+ std::string encoding;
INFO info;
int depth;
bool parsingAnswer;
void ParseUser(const char * el, const char ** attr);
void ParseUserParams(const char * el, const char ** attr);
+ void ParseAuthBy(const char * el, const char ** attr);
+ void ParseServices(const char * el, const char ** attr);
};
} // namespace GET_USER