/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2008-2010, Tomasz Sowa * All rights reserved. * */ #ifndef headerfilecmslucorehttpsimpleparser #define headerfilecmslucorehttpsimpleparser #include class HttpSimpleParser { protected: bool read_name; bool value_can_be_quoted; bool skip_white_chars; bool recognize_special_chars; int ParseHalfHex(int c); void ReadName(); void ReadQuotedValue(); void ReadValue(); std::string last_name; std::string last_value; int last_c; int separator; // '-1' means end (eof) virtual int GetChar() = 0; virtual void Parameter(std::string & last_name, std::string & last_value) = 0; void ToLower(std::string & s); bool IsWhite(int c); void SkipWhiteChars(); void TrimWhiteChars(std::string & s); void CheckSpecialChar(); void Parse(); public: HttpSimpleParser() { separator = '&'; read_name = true; value_can_be_quoted = false; skip_white_chars = false; recognize_special_chars = true; } }; #endif