/* * This file is a part of CMSLU -- Content Management System like Unix * and is not publicly distributed * * Copyright (c) 2008-2009, Tomasz Sowa * All rights reserved. * */ #ifndef headerfilecmslucoregetparser #define headerfilecmslucoregetparser #include "httpsimpleparser.h" #include "requesttypes.h" class GetParser : public HttpSimpleParser { const char * get_string; GetTable & get_table; protected: virtual int GetChar() { if( !get_string || *get_string == 0 ) return -1; return (int)(unsigned char)*(get_string++); } virtual void Parameter(std::string &, std::string & value) { get_table.push_back(value); log << log2 << "Get, value: \"" << value << "\"" << logend; } public: GetParser(const char * get_string_, GetTable & get_table_) : get_string(get_string_), get_table(get_table_) { HttpSimpleParser::separator = '/'; HttpSimpleParser::read_name = false; if( get_string && *get_string == separator ) // one '/' at the beginning ++get_string; } }; #endif