Web framework C++
2.0.0
Simple web framework on c++ designed to easily create web pages, etc
Main Page
Classes
Files
File List
File Members
include
form_parser.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <unordered_map>
4
#include "
form_entity.h
"
5
6
using
KeyValueStorage
= std::unordered_map<std::string, std::string>;
7
using
KeyEntityStorage
= std::unordered_map<std::string, FormEntity *>;
8
18
class
FormParser
{
19
protected
:
20
KeyEntityStorage
*
values
=
nullptr
;
21
FormEntity
*
valueCurrent
=
nullptr
;
22
std::string
keyCurrent
;
23
std::string
formBody
;
24
std::string
valuesDelimiter
;
25
std::string
pairsDelimiter
;
26
public
:
38
KeyEntityStorage
*
parseForm
(std::string & httpRequest,
KeyValueStorage
* KVPStorage =
nullptr
);
39
43
virtual
~FormParser
();
44
protected
:
48
void
selectFormBody
();
49
54
virtual
void
actionBeforeSelectingBody
() {};
55
64
virtual
void
parseNextKey
(
size_t
startPosition,
size_t
endPosition) = 0;
65
74
virtual
void
parseNextValue
(
size_t
startPosition,
size_t
endPosition) = 0;
75
85
virtual
void
actionBeforeValueParsing
(
size_t
keyStart,
size_t
keyEnd) {};
86
93
KeyValueStorage
getKeyValuePairs
();
94
99
void
setCurrentValue
(
FormEntity
* valueCurrent);
100
};
FormParser::parseForm
KeyEntityStorage * parseForm(std::string &httpRequest, KeyValueStorage *KVPStorage=nullptr)
FormParser::valueCurrent
FormEntity * valueCurrent
Definition:
form_parser.h:21
FormParser::pairsDelimiter
std::string pairsDelimiter
Definition:
form_parser.h:25
FormParser::values
KeyEntityStorage * values
Definition:
form_parser.h:20
FormParser::actionBeforeValueParsing
virtual void actionBeforeValueParsing(size_t keyStart, size_t keyEnd)
Definition:
form_parser.h:85
FormParser::setCurrentValue
void setCurrentValue(FormEntity *valueCurrent)
FormParser::parseNextKey
virtual void parseNextKey(size_t startPosition, size_t endPosition)=0
FormParser::selectFormBody
void selectFormBody()
KeyValueStorage
std::unordered_map< std::string, std::string > KeyValueStorage
Definition:
form_parser.h:6
FormParser::actionBeforeSelectingBody
virtual void actionBeforeSelectingBody()
Definition:
form_parser.h:54
FormParser::getKeyValuePairs
KeyValueStorage getKeyValuePairs()
FormParser::parseNextValue
virtual void parseNextValue(size_t startPosition, size_t endPosition)=0
FormParser::~FormParser
virtual ~FormParser()
FormParser::valuesDelimiter
std::string valuesDelimiter
Definition:
form_parser.h:24
FormEntity
Wrapper class for value form.
Definition:
form_entity.h:12
form_entity.h
FormParser::keyCurrent
std::string keyCurrent
Definition:
form_parser.h:22
FormParser::formBody
std::string formBody
Definition:
form_parser.h:23
KeyEntityStorage
std::unordered_map< std::string, FormEntity * > KeyEntityStorage
Definition:
form_parser.h:7
FormParser
Template methods pattern for parsing form.
Definition:
form_parser.h:18
Generated by
1.8.11