Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cHttpFactory.h
Go to the documentation of this file.
1 //
5 //
6 
7 #ifndef _INC_cHttpServer_H
8 #define _INC_cHttpServer_H
9 #ifndef NO_PRAGMA_ONCE
10 #pragma once
11 #endif
12 
13 #include "cHttpController.h"
14 #include "cHttpProtocolStream.h"
15 
21 
22 namespace GrayLib
23 {
25 
27  {
31 
32  public:
33  const char* const m_pszServName;
34  private:
35  cArrayRef<cHttpController> m_aControllerTypes;
36 
37  public:
38  cHttpFactory(const char* pszServName = GRAY_NAMES "HTTPServer");
39  virtual ~cHttpFactory();
40 
41  ITERATE_t AddHttpController(cHttpController* pPageType);
42  HTTPRET_TYPE OnVerbFactory(cHttpProtocolStreamBase* pClient, const cHttpHeaderClient& request, cStringA sURLReq="");
43 
45  virtual const char* get_ProtocolName() const override
46  {
48  return "HTTP";
49  }
50 
51  virtual HRESULT TestProtocol(const BYTE* pszPrefixData, size_t iPrefixLen) const override;
52  virtual cProtocolStreamPtr CreateProtocolStream(IUnkObject* pServerConnection, cStreamInput* pStreamInp, cStreamOutput* pStreamOut) override
53  {
55  return new cHttpProtocolStream(this, pServerConnection, pStreamInp, pStreamOut);
56  }
57 
59  };
60 };
61 #endif
#define GRAY_NAMES
Use GRAYNAME for string.
Definition: GrayCore.h:34
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
Definition: cHttpController.h:21
Definition: cHttpFactory.h:27
const char *const m_pszServName
just a static string id for the server.
Definition: cHttpFactory.h:33
UNITTEST_FRIEND(cHttpFactory)
virtual const char * get_ProtocolName() const override
Overridden from IProtocolFactory.
Definition: cHttpFactory.h:45
virtual cProtocolStreamPtr CreateProtocolStream(IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut) override
Definition: cHttpFactory.h:52
Definition: cHttpHeader.h:137
Definition: cHttpProtocolStream.h:22
Definition: cHttpProtocolStream.h:44
Definition: cArrayRef.h:21
Definition: cStream.h:306
Definition: cStream.h:126
Definition: cMesh.h:22
HTTPRET_TYPE
Definition: cHttpCommon.h:24
UNITTEST2_PREDEF(cQuadtree)
int ITERATE_t
like size_t but signed
Definition: Index.h:28
Definition: cProtocol.h:125