Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cHttpFactory Class Reference

#include <cHttpFactory.h>

Inheritance diagram for GrayLib::cHttpFactory:
GrayLib::IProtocolFactory GrayLib::cHttpScriptedFactory

Public Member Functions

 cHttpFactory (const char *pszServName=GRAY_NAMES "HTTPServer")
 
virtual ~cHttpFactory ()
 
ITERATE_t AddHttpController (cHttpController *pPageType)
 
HTTPRET_TYPE OnVerbFactory (cHttpProtocolStreamBase *pClient, const cHttpHeaderClient &request, cStringA sURLReq="")
 
virtual const char * get_ProtocolName () const override
 Overridden from IProtocolFactory. More...
 
virtual HRESULT TestProtocol (const BYTE *pszPrefixData, size_t iPrefixLen) const override
 
virtual cProtocolStreamPtr CreateProtocolStream (IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut) override
 
 UNITTEST_FRIEND (cHttpFactory)
 
- Public Member Functions inherited from GrayLib::IProtocolFactory
virtual ~IProtocolFactory ()
 
virtual size_t get_ProtocolMaxMessageSize () const
 

Public Attributes

const char *const m_pszServName
 just a static string id for the server. More...
 

Detailed Description

a HTTP Protocol Factory. Define stuff about the HTTP server based on cNetServer. port 80 is default.

Constructor & Destructor Documentation

◆ cHttpFactory()

GrayLib::cHttpFactory::cHttpFactory ( const char *  pszServName = GRAY_NAMES "HTTPServer")

◆ ~cHttpFactory()

GrayLib::cHttpFactory::~cHttpFactory ( )
virtual

Member Function Documentation

◆ AddHttpController()

ITERATE_t GrayLib::cHttpFactory::AddHttpController ( cHttpController pPageType)

Add a controller to serve up an URL path.

◆ CreateProtocolStream()

virtual cProtocolStreamPtr GrayLib::cHttpFactory::CreateProtocolStream ( IUnkObject *  pServerConnection,
cStreamInput pStreamInp,
cStreamOutput pStreamOut 
)
inlineoverridevirtual

◆ get_ProtocolName()

virtual const char* GrayLib::cHttpFactory::get_ProtocolName ( ) const
inlineoverridevirtual

Overridden from IProtocolFactory.

The protocol type name.

Implements GrayLib::IProtocolFactory.

◆ OnVerbFactory()

HTTPRET_TYPE GrayLib::cHttpFactory::OnVerbFactory ( cHttpProtocolStreamBase pClient,
const cHttpHeaderClient request,
cStringA  sURLReq = "" 
)

An HTTP message has been received. Try to figure out what to do with the request. Which cHttpController? allow override for other actions as well. pController->OnVerb() can serve up its own errors and return OK if it wants. even HTTPRET_ER_404 if request is under its path.

Todo:
Sort m_aControllerTypes?

◆ TestProtocol()

HRESULT GrayLib::cHttpFactory::TestProtocol ( const BYTE *  pszPrefixData,
size_t  iPrefixLen 
) const
overridevirtual

Overridden from IProtocolFactory Is this new connection an HTTP client incoming ?

Returns
Number of bytes consumed = good client packet, HRESULT_WIN32_C(ERROR_IO_INCOMPLETE) = not enough data for a complete header. <0 = error fail this.

Implements GrayLib::IProtocolFactory.

◆ UNITTEST_FRIEND()

GrayLib::cHttpFactory::UNITTEST_FRIEND ( cHttpFactory  )

Member Data Documentation

◆ m_pszServName

const char* const GrayLib::cHttpFactory::m_pszServName

just a static string id for the server.


The documentation for this class was generated from the following files: