Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cHttpController.h
Go to the documentation of this file.
1 //
4 //
5 
6 #ifndef _INC_cHttpController_H
7 #define _INC_cHttpController_H
8 #ifndef NO_PRAGMA_ONCE
9 #pragma once
10 #endif
11 
12 #include "cHttpHeader.h"
14 
15 namespace GrayLib
16 {
17  class cHttpProtocolStreamBase;
18  class cHttpProtocolStream;
19 
21  {
27  public:
29 
30  protected:
31  cHttpController(cStringA sRoutePrefix)
32  : m_sRoutePrefix(sRoutePrefix)
33  {
34  }
35  virtual ~cHttpController()
36  {
37  }
38 
39  public:
40  cStringA get_Name() const
41  {
43  return m_sRoutePrefix;
44  }
45  bool isMatchRoute(const char* pszObject) const;
46  virtual HTTPRET_TYPE OnVerb(cHttpProtocolStreamBase* pClient, const cHttpHeaderClient& request, cStringA sURLReq);
47  };
48 
49  class GRAYLIB_LINK cHttpControllerFileDir : public cHttpController
50  {
55 
56  typedef cHttpController SUPER_t;
57  public:
58  static const char* k_pszIndex; // "index.html"
59  cStringF m_sLocalDir;
60  public:
61  cHttpControllerFileDir(cStringA sURLPrefix, cStringF sLocalDir)
62  : cHttpController(sURLPrefix)
63  , m_sLocalDir(sLocalDir)
64  {
65  }
66  virtual ~cHttpControllerFileDir()
67  {
68  }
69  virtual HTTPRET_TYPE OnVerb(cHttpProtocolStreamBase* pClient, const cHttpHeaderClient& request, cStringA sURLReq) override;
70  };
71 };
72 
73 #endif
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
Definition: cHttpController.h:21
cHttpController(cStringA sRoutePrefix)
Definition: cHttpController.h:31
cStringA m_sRoutePrefix
The URL prefix/path we need to serve this type. can be "" = any/root.
Definition: cHttpController.h:28
cStringA get_Name() const
Definition: cHttpController.h:40
virtual ~cHttpController()
Definition: cHttpController.h:35
Definition: cHttpHeader.h:137
Definition: cHttpProtocolStream.h:22
Definition: cRefPtr.h:22
Definition: cMesh.h:22
HTTPRET_TYPE
Definition: cHttpCommon.h:24
cStringT< FILECHAR_t > cStringF
A file name. checks USE_UNICODE_FN. related to cFilePath.
Definition: cFilePath.h:17
cStringT< char > cStringA
Definition: cString.h:635