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

#include <cHttpProtocolStream.h>

Inheritance diagram for GrayLib::cHttpProtocolStream:
Gray::cRefBase GrayLib::cHttpProtocolStreamBase IUnknown GrayLib::cProtocolStream GrayLib::cHttpCommon

Public Member Functions

 cHttpProtocolStream (cHttpFactory *pFactory, IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut)
 
HASHCODE_t get_HashCode () const noexcept
 
 IUNKNOWN_DISAMBIG (cRefBase)
 
- Public Member Functions inherited from Gray::cRefBase
 cRefBase (int iRefCount=0) noexcept
 
virtual ~cRefBase ()
 
int get_RefCount () const noexcept
 
HASHCODE_t get_HashCode () const noexcept
 
 STDMETHOD_ (HASHCODE_t, get_HashCodeX)() const noexcept
 
virtual void onFinalRelease ()
 
bool isValidObj () const noexcept
 
 STDMETHOD_ (ULONG, AddRef)(void) override
 
 STDMETHOD_ (ULONG, Release)(void) override
 
STDMETHOD() QueryInterface (const IID &riid, void __RPC_FAR *__RPC_FAR *ppvObject) override
 
void IncRefCount ()
 
void DecRefCount ()
 
bool isStaticConstruct () const noexcept
 
void StaticConstruct ()
 
void StaticDestruct ()
 
bool isDestructing () noexcept
 
void SetDestructing ()
 
- Public Member Functions inherited from GrayLib::cHttpProtocolStreamBase
 cHttpProtocolStreamBase (cHttpFactory *pFactory, IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut)
 
virtual ~cHttpProtocolStreamBase ()
 
HRESULT ServePageError (cStringA sURLFailed, HTTPRET_TYPE eRetCode)
 
HRESULT ServePageGenericNoChange (const FILECHAR_t *pszSrcFile)
 
HRESULT ServePageStream (cHttpHeaderServer &Head, cStreamInput *pInp)
 
HRESULT ServePageQueue (const ATOMCHAR_t *pszURL, MIME_TYPE eMimeType, cStream &src)
 
HRESULT ServePageFile (const FILECHAR_t *pszSrcFile, MIME_TYPE eMimeType=MIME_UNKNOWN, cTimeInt *pdateIfModifiedSince=nullptr, bool bHeaderOnly=false)
 
virtual HRESULT ProcessStreamPacket () override
 
- Public Member Functions inherited from GrayLib::cProtocolStream
 cProtocolStream (IProtocolFactory *pProtocolFactory, IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut)
 
virtual ~cProtocolStream ()
 
HASHCODE_t get_HashCode () const noexcept
 
 STDMETHOD_ (HASHCODE_t, get_HashCodeX)() const noexcept override
 
 STDMETHOD_ (cString, get_Name)() const override
 
 STDMETHOD_ (cStringA, get_SymName)() const override
 
bool isConnected () const
 
cStreamInputget_StreamInp () const
 
cStreamOutputget_StreamOut () const
 
virtual size_t get_ProtocolMaxMessageSize () const
 
virtual HRESULT DisposeThis ()
 
virtual HRESULT OnTickStream ()
 
- Public Member Functions inherited from GrayLib::cHttpCommon
 UNITTEST_FRIEND (cHttpCommon)
 

Additional Inherited Members

- Static Public Member Functions inherited from GrayLib::cHttpCommon
static HTTPVERB_TYPE GRAYCALL FindVerb (const char *pszVerb)
 
static HTTPRET_TYPE GRAYCALL GetErrorHttpRet (HRESULT hRes)
 
static HRESULT GRAYCALL GetErrorHResult (HTTPRET_TYPE eRetCode)
 
static cStringA GRAYCALL GetErrorText (HTTPRET_TYPE eRetCode)
 
- Public Attributes inherited from GrayLib::cProtocolStream
IProtocolFactory *const m_pProtocolFactory
 What IProtocolFactory produced this? More...
 
IUnkObject *const m_pServerConnection
 the cNetServerConnection or other top level parent for this protocol. More...
 
HASHCODE_t const m_nHashCode
 the m_pClient->get_HashCode() id for this client connection/stream. More...
 
- Static Public Attributes inherited from GrayLib::cHttpCommon
static const size_t k_CR_SIZE = 2
 sizeof HTTP_CR "\r\n" More...
 
static const char * k_Space = "&nbsp;"
 "&nbsp;" More...
 
static const char *const k_szVerbs [HTTPVERB_QTY+1]
 
static const cPairT< HTTPRET_TYPE, HRESULTk_HttpReturnErrors []
 
- Protected Attributes inherited from GrayLib::cHttpProtocolStreamBase
cHttpFactory *const m_pFactory
 my parent HTTP server. it created me for cNetServer. More...
 
- Protected Attributes inherited from GrayLib::cProtocolStream
cStreamInputm_pStreamInp
 for use with ProcessStreamPacket() More...
 
cStreamOutputm_pStreamOut
 TX responses back to the remote client go here. (e.g. cNetServerConnection->cNetStream) More...
 
cString m_sName
 a user readable name. Usually the IP address or reverse DNS lookup. can be upgraded as lookup or login becomes avail. m_pClient->get_Name() More...
 

Detailed Description

The HTTP servers side of a HTTP client connection. via cHttpFactory Format the outgoing stream as a web server. Assume we can buffer any single finite blob and we can serve on OnVerb. For streams we must deal with async or transfer to another thread. http://en.wikipedia.org/wiki/WebDAV

Constructor & Destructor Documentation

◆ cHttpProtocolStream()

GrayLib::cHttpProtocolStream::cHttpProtocolStream ( cHttpFactory pFactory,
IUnkObject *  pServerConnection,
cStreamInput pStreamInp,
cStreamOutput pStreamOut 
)
inline

Member Function Documentation

◆ get_HashCode()

HASHCODE_t GrayLib::cHttpProtocolStream::get_HashCode ( ) const
inlinenoexcept

◆ IUNKNOWN_DISAMBIG()

GrayLib::cHttpProtocolStream::IUNKNOWN_DISAMBIG ( cRefBase  )

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