last version
[aerie.git] / IRequest.h
blob208d503c058bb1523de4a9d36da4669e73a95ea7
1 #pragma once
3 #include <string>
4 #include <vector>
6 #include "definitions.h"
8 /**
9 * Base class for all requests.
10 * All request classes must inherits from this.
12 typedef std::vector<std::string> strings;
14 /**
18 class IRequest
20 protected:
21 /**
22 * ordered list of all headers from request
24 strings headersStrings;
25 strings headersNames;
26 strings headersValues;
28 /**
29 * binary data sent with request
31 char* data;
33 public:
34 IRequest(SOCKET s);
35 virtual ~IRequest(void);
37 /**
38 * Initiate request
40 virtual bool init() = 0;
41 virtual bool finish() = 0;
42 virtual bool isWaitingForSocket() = 0;
43 virtual bool addHeader(std::string header) = 0;
44 virtual bool setHeaders(strings headers) = 0;
45 virtual bool startProcess() = 0;
46 virtual bool test() = 0;