DCL 4.0
Loading...
Searching...
No Matches
HttpServerExtension.h
Go to the documentation of this file.
1#ifndef __DCL_HTTP_SERVER_EXTENSION_H__
2#define __DCL_HTTP_SERVER_EXTENSION_H__ 20050509
3
4#ifndef __DCL_CONFIG_H__
5#include <dcl/Config.h>
6#endif
7
8#ifndef FALSE
9 #undef BOOL
10 #undef TRUE
11 #undef FALSE
12 typedef int BOOL;
13 #define FALSE 0
14 #define TRUE !FALSE
15#endif
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21/* RFC 2616/5.1.1 */
33
35 HTTP_STATUS_CONTINUE = (unsigned int) 100,
75};
76
83
84/* callback functions */
85/* for DCL_HTTP_SERVER_API */
87 DCL_HTTP_HCONN hConn, /* (IN) */
88 const void* pvBuffer, /* (IN) */
89 size_t* pnLength /* (IN, OUT) */
90 );
92 DCL_HTTP_HCONN hConn, /* (IN) */
93 void* pvBuffer, /* (OUT) */
94 size_t* pnLength /* (IN, OUT) */
95 );
97 DCL_HTTP_HCONN hConn, /* (IN) */
98 unsigned int uStatusCode,/* (IN) */
99 const char* pszHeader, /* (IN) */
100 size_t uLength /* (IN) number of bytes in header */
101 );
103 DCL_HTTP_HCONN hConn, /* (IN) */
104 const char* _name, /* (IN) NULL => all */
105 char* pchBuffer, /* (OUT) */
106 size_t* pnLength /* (IN, OUT) */
107 );
109 DCL_HTTP_HCONN hConn, /* (IN) */
110 const char* pszVarName, /* (IN) NULL => all vars */
111 void* pvBuffer, /* (OUT) */
112 size_t* pnLength /* (IN, OUT) */
113 );
114typedef void (*DCLHttpWriteStream)(
115 void* hWriter, /* (IN) */
116 const void* pvData, /* (IN) */
117 size_t uLength /* (IN) */
118 );
119typedef void (* DCLHttpServerControl)(
120 DCL_HTTP_HCONN hConn, /* (IN) */
121 const wchar_t* _controlRequest,
122 size_t uLength,
123 DCLHttpWriteStream _pfnControlWrite,
124 void* _hResultWriter
125 );
126
127/* for DCL_HTTP_SERVLET */
129 const DCL_HTTP_SERVLET_CONFIG* pConfig,
130 void* hErrorReport
131 );
133 void* hErrorReport
134 );
136 const DCL_HTTP_SERVLET_CONTEXT* pContext,
137 void* hErrorReport
138 );
139
141 void* pv;
142};
143
155
157 uint32_t uSize; /* (IN) size of this structure */
158 uint32_t uVersion; /* (IN) version info of this spec */
160 const char* pszRemoteAddr; /* (IN) REMOTE_ADDR */
161 unsigned int uRemotePort; /* (IN) REMOTE_PORT */
162 unsigned int uRequestMethod; /* (IN) RFC 2616/5.1.1 HTTP_REQUEST_METHOD */
163 const char* pszRequestMethod; /* (IN) REQUEST_METHOD */
164 const char* pszPath; /* (IN) URI's abs_path */
165 const char* pszQueryString; /* (IN) QUERY_STRING */
166 const char* pszContentType; /* (IN) CONTENT_TYPE */
167 size_t uContentLength; /* (IN) CONTENT_LENGTH */
168 const char* pszScriptFilename; /* (IN) SCRIPT_FILE_NAME, PATH_TRANSLATED */
169 const wchar_t* pszScriptData;
171};
172
174 const wchar_t* pszModuleName; /* Module Filename */
175 const wchar_t* pszConfigPath;
176 const wchar_t* pszTempPath;
178};
179
181 /* DCL common members */
182 uint32_t uSize; /* (OUT) size of this structure */
183 uint32_t uDCLVersion; /* (OUT) DCL_VERSION, non DCL(0) */
184 const wchar_t* pszBuildTimeStamp; /* (OUT) __TIMESTAMP__ */
185 uint32_t uBuildFlag; /* (OUT) release(0), debug(1) */
186 uint32_t uModuleType; /* (OUT) DCL_HTTP_SERVLET_MODULE */
187 const wchar_t* pszDescription; /* (OUT) module description */
188
189 /* private members */
190 uint32_t uVersion; /* (OUT) version info of this spec */
191 /* DCL_HTTP_SERVER_VERSION */
192
196};
197
198#ifdef __cplusplus
199}
200#endif
201
202#endif /* __DCL_HTTP_SERVER_EXTENSION_H__ */
int BOOL
BOOL(* DCLHttpGetCgiVariable)(DCL_HTTP_HCONN hConn, const char *pszVarName, void *pvBuffer, size_t *pnLength)
HTTP_REQUEST_METHOD
@ HTTP_METHOD_POST
@ HTTP_METHOD_HEAD
@ HTTP_METHOD_CONNECT
@ HTTP_METHOD_DELETE
@ HTTP_METHOD_GET
@ HTTP_METHOD_TRACE
@ HTTP_METHOD_OPTIONS
@ HTTP_METHOD_PUT
@ HTTP_METHOD_UNKNOWN
BOOL(* DCLHttpServletInitialize)(const DCL_HTTP_SERVLET_CONFIG *pConfig, void *hErrorReport)
struct _DCL_HTTP_SERVLET_CONTEXT DCL_HTTP_SERVLET_CONTEXT
struct _DCL_HTTP_CONN DCL_HTTP_CONN
BOOL(* DCLHttpReadClient)(DCL_HTTP_HCONN hConn, void *pvBuffer, size_t *pnLength)
void(* DCLHttpWriteStream)(void *hWriter, const void *pvData, size_t uLength)
BOOL(* DCLHttpWriteClient)(DCL_HTTP_HCONN hConn, const void *pvBuffer, size_t *pnLength)
BOOL(* DCLHttpServletService)(const DCL_HTTP_SERVLET_CONTEXT *pContext, void *hErrorReport)
struct _DCL_HTTP_SERVER_API DCL_HTTP_SERVER_API
BOOL(* DCLHttpServletCleanup)(void *hErrorReport)
BOOL(* DCLHttpGetRequestHeader)(DCL_HTTP_HCONN hConn, const char *_name, char *pchBuffer, size_t *pnLength)
struct _DCL_HTTP_SERVLET DCL_HTTP_SERVLET
HTTP_RESPONSE_STATUS_CODE
@ HTTP_STATUS_EXPECTATION_FAILED
@ HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE
@ HTTP_STATUS_NOT_ACCEPTABLE
@ HTTP_STATUS_REQUEST_ENTITY_TOO_LARGE
@ HTTP_STATUS_INTERNAL_SERVER_ERROR
@ HTTP_STATUS_REQUEST_URI_TOO_LARGE
@ HTTP_STATUS_REQUEST_TIME_OUT
@ HTTP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE
@ HTTP_STATUS_NON_AUTHORITIVE
@ HTTP_STATUS_FORBIDDEN
@ HTTP_STATUS_BAD_REQUEST
@ HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED
@ HTTP_STATUS_FOUND
@ HTTP_STATUS_VERSION_NOT_SUPPORTED
@ HTTP_STATUS_METHOD_NOT_ALLOWED
@ HTTP_STATUS_GONE
@ HTTP_STATUS_NOT_MODIFIED
@ HTTP_STATUS_CONFLICT
@ HTTP_STATUS_TEMPORARY_REDIRECT
@ HTTP_STATUS_RESET_CONTENT
@ HTTP_STATUS_ACCEPTED
@ HTTP_STATUS_MOVED_PERMANENTLY
@ HTTP_STATUS_PARTIAL_CONTENT
@ HTTP_STATUS_GATEWAY_TIME_OUT
@ HTTP_STATUS_CREATED
@ HTTP_STATUS_USE_PROXY
@ HTTP_STATUS_SERVICE_UNAVAILABLE
@ HTTP_STATUS_LENGTH_REQUIRED
@ HTTP_STATUS_SWITCHING_PROTOCOLS
@ HTTP_STATUS_PRECONDITION_FAILED
@ HTTP_STATUS_BAD_GATEWAY
@ HTTP_STATUS_NOT_IMPLEMENTED
@ HTTP_STATUS_MULTIPLE_CHOICES
@ HTTP_STATUS_NO_CONTENT
@ HTTP_STATUS_OK
@ HTTP_STATUS_CONTINUE
@ HTTP_STATUS_UNAUTHORIZED
@ HTTP_STATUS_SEE_OTHER
@ HTTP_STATUS_NOT_FOUND
@ HTTP_STATUS_PAYMENT_REQUIRED
void(* DCLHttpServerControl)(DCL_HTTP_HCONN hConn, const wchar_t *_controlRequest, size_t uLength, DCLHttpWriteStream _pfnControlWrite, void *_hResultWriter)
DCL_HTTP_CONN * DCL_HTTP_HCONN
BOOL(* DCLHttpSendResponseHeader)(DCL_HTTP_HCONN hConn, unsigned int uStatusCode, const char *pszHeader, size_t uLength)
struct _DCL_HTTP_SERVLET_CONFIG DCL_HTTP_SERVLET_CONFIG
DCLHttpSendResponseHeader pfnSendResponseHeader
DCLHttpServerControl pfnServerControl
DCLHttpReadClient pfnReadClient
DCLHttpWriteStream pfnReportError
DCLHttpWriteClient pfnWriteClient
DCLHttpGetRequestHeader pfnGetRequestHeader
DCLHttpGetCgiVariable pfnGetCgiVariable
const DCL_HTTP_SERVER_API * pSAPI
const wchar_t * pszBuildTimeStamp
const wchar_t * pszDescription
DCLHttpServletInitialize pfnInitialize
DCLHttpServletService pfnHttpService
DCLHttpServletCleanup pfnCleanup