Genivia Home Documentation
ISAPI_HttpRequest Class Reference

updated Mon Feb 22 2016
 
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ISAPI_HttpRequest Class Reference

#include <ISAPI_HttpContext.h>

Inheritance diagram for ISAPI_HttpRequest:
Inheritance graph
[legend]
Collaboration diagram for ISAPI_HttpRequest:
Collaboration graph
[legend]

Public Member Functions

 ISAPI_HttpRequest (EXTENSION_CONTROL_BLOCK *pECB=NULL)
 
virtual ~ISAPI_HttpRequest ()
 destructor. More...
 
EXTENSION_CONTROL_BLOCK * ECB () const
 
- Public Member Functions inherited from HttpRequest
 HttpRequest ()
 constructor. More...
 
virtual ~HttpRequest ()
 destructor. More...
 
virtual Method getMethod () const
 
virtual const char * getQueryString ()
 
virtual const char * getBody ()
 
virtual void * getData ()
 
virtual unsigned long getContentLength () const
 return the lenght of the body of the request. More...
 
virtual bool operator<< (std::istream &)
 
- Public Member Functions inherited from HttpMessage
 HttpMessage ()
 constructor. More...
 
const ContentHeadersgetContentHeaders () const
 return the content headers of the message. More...
 
ContentHeadersgetContentHeaders ()
 return the content headers of the message. More...
 

Protected Member Functions

void ParseHeaders (EXTENSION_CONTROL_BLOCK &ecb)
 extract the request headers from the content block More...
 
bool AddHeader (EXTENSION_CONTROL_BLOCK &ecb, const char *pszHeaderName, LPCTSTR pszVariableName)
 
bool ReadHeader (EXTENSION_CONTROL_BLOCK &ecb, LPCTSTR pszVariableName, std::string &strHeaderValue)
 
void ReadCustomHeaders (EXTENSION_CONTROL_BLOCK &ecb)
 

Protected Attributes

bool m_bHeadersParsed
 have the content headers already been parsed ? More...
 
EXTENSION_CONTROL_BLOCK * m_pECB
 
- Protected Attributes inherited from HttpMessage
ContentHeaders m_ContentHeaders
 the content headers. More...
 

Additional Inherited Members

- Public Types inherited from HttpRequest
enum  Method { GET = 0, POST = 1 }
 
- Public Types inherited from HttpMessage
typedef std::map< std::string, std::string, casecmplessContentHeaders
 
- Public Attributes inherited from HttpRequest
std::string _querystring
 
char * _body
 
unsigned long _contentlength
 
Method _method
 

Detailed Description

encapsulate special content header parsing if we are running on a non-standard server.

Constructor & Destructor Documentation

ISAPI_HttpRequest::ISAPI_HttpRequest ( EXTENSION_CONTROL_BLOCK *  pECB = NULL)

Constructor, parsing also content headers from the control block.

Parameters
pECBthe ISAPI extension control block passed in by IIS.
ISAPI_HttpRequest::~ISAPI_HttpRequest ( )
virtual

destructor.

Member Function Documentation

bool ISAPI_HttpRequest::AddHeader ( EXTENSION_CONTROL_BLOCK &  ecb,
const char *  pszHeaderName,
LPCTSTR  pszVariableName 
)
protected

add a ECB header variable to our content headers collection.

Parameters
ecbthe extension control block of the current IIS request
pszHeaderNamethe HTTP - standard name of the content header.
pszVariableNamethe name invented by Micro$oft for the same thing.
EXTENSION_CONTROL_BLOCK * ISAPI_HttpRequest::ECB ( ) const
void ISAPI_HttpRequest::ParseHeaders ( EXTENSION_CONTROL_BLOCK &  ecb)
protected

extract the request headers from the content block

void ISAPI_HttpRequest::ReadCustomHeaders ( EXTENSION_CONTROL_BLOCK &  ecb)
protected

read all HTTP headers that were not already parsed into one of the ISAPI - ECB variables.

bool ISAPI_HttpRequest::ReadHeader ( EXTENSION_CONTROL_BLOCK &  ecb,
LPCTSTR  pszVariableName,
std::string &  strHeaderValue 
)
protected

Read a variable from the control block.

Parameters
ecbthe Extension Control Block.
pszVariableNamethe name of the variable to read (output) the value of the variable
Returns
true if the header was found.

Member Data Documentation

bool ISAPI_HttpRequest::m_bHeadersParsed
protected

have the content headers already been parsed ?

EXTENSION_CONTROL_BLOCK* ISAPI_HttpRequest::m_pECB
protected

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