Zen API
|
Implements a simple HTTP server.
The kHttpServer class implements a simple HTTP 1.1 server framework. The kHttpServer_SetHandler function can be used to register a callback function to process remote requests. The 'args' parameter to this callback receives a kHttpServerChannel instance, which can be used to access kHttpServerRequest and kHttpServerResponse objects. These request/response objects can be used to parse an incoming request and to format an outgoing response, respectively.
kHttpServer uses a simple thread-per-connection model, where the maximum number of simultaneous connections can be configured using the kHttpServer_SetMaxConnections function. Accordingly, kHttpServer is better suited to small/embedded applications than large-scale web applications.
Public Member Functions | |
kStatus | kHttpServer_Construct (kHttpServer *server, kAlloc allocator) |
Constructs a kHttpServer object. More... | |
kStatus | kHttpServer_LocalEndPoint (kHttpServer server, kIpEndPoint *endPoint) |
Reports the local end-point for a running server. More... | |
kStatus | kHttpServer_SetAddress (kHttpServer server, kIpAddress address) |
Sets the local address to which the server should bind. More... | |
kStatus | kHttpServer_SetBacklog (kHttpServer server, kSize backlog) |
Sets the size of the backlog used by the listening socket. More... | |
kStatus | kHttpServer_SetHandler (kHttpServer server, kCallbackFx function, kPointer receiver) |
Sets the callback that will be invoked to process remote requests. More... | |
kStatus | kHttpServer_SetMaxConnections (kHttpServer server, kSize capacity) |
Sets the maximum number of simultaneous connections supported by the server. More... | |
kStatus | kHttpServer_SetPort (kHttpServer server, k32u port) |
Sets the local port to which the server should bind. More... | |
kStatus | kHttpServer_SetReadBuffers (kHttpServer server, kSSize socketSize, kSSize clientSize) |
Sets the size of connection read buffers. More... | |
kStatus | kHttpServer_SetWriteBuffers (kHttpServer server, kSSize socketSize, kSSize clientSize) |
Sets the size of connection write buffers. More... | |
kStatus | kHttpServer_Start (kHttpServer server) |
Starts the server. More... | |
kStatus | kHttpServer_Stop (kHttpServer server) |
Stops the server. More... | |
![]() | |
kAlloc | kObject_Alloc (kObject object) |
Gets the memory allocator associated with this object. More... | |
kStatus | kObject_Clone (kObject *object, kObject source, kAlloc allocator) |
Constructs a new object by copying an existing object, including any aggregated child elements. More... | |
kStatus | kObject_Destroy (kObject object) |
Destroys the object. More... | |
kStatus | kObject_Dispose (kObject object) |
Destroys the object and any aggregated child elements. More... | |
kBool | kObject_Equals (kObject object, kObject other) |
Determines whether the object is equal to another object. More... | |
kBool | kObject_HasForeignData (kObject object) |
Reports whether the object, including aggregated child elements, contains any foreign memory references. More... | |
kSize | kObject_HashCode (kObject object) |
Gets a hash code representing the state of this object. More... | |
kBool | kObject_Is (kObject object, kType type) |
Determines whether this object is an instance of the specified type. More... | |
kBool | kObject_IsShared (kObject object) |
Reports whether the object is currently shared (reference count greater than one). More... | |
kStatus | kObject_SetPool (kObject object, kObjectPool pool) |
Sets the object pool associated with this object. More... | |
kStatus | kObject_Share (kObject object) |
Increments the reference count associated with this object. More... | |
kSize | kObject_Size (kObject object) |
Estimates the memory consumed by this object, including any aggregated child elements. More... | |
kType | kObject_Type (kObject object) |
Returns the type of the object. More... | |
Additional Inherited Members | |
![]() | |
kStatus | kObject_FreeMem (kObject object, void *mem) |
Protected method called by derived classes to free memory using the object's allocator. More... | |
kStatus | kObject_FreeMemRef (kObject object, void *mem) |
Protected method called by derived classes to free memory (and reset the provided memory pointer to kNULL) using the object's allocator. More... | |
kStatus | kObject_GetMem (kObject object, kSize size, void *mem) |
Protected method called by derived classes to allocate memory using the object's allocator. More... | |
kStatus | kObject_GetMemZero (kObject object, kSize size, void *mem) |
Protected method called by derived classes to allocate and zero memory using the object's allocator. More... | |
kStatus | kObject_Init (kObject object, kType type, kAlloc alloc) |
Protected method called by derived classes to initialize the kObject base class. More... | |
kStatus | kObject_VDisposeItems (kObject object) |
Protected virtual method that destroys any aggregated child objects associated with a collection. More... | |
kBool | kObject_VEquals (kObject object, kObject other) |
Protected virtual method that compares two objects for equality. More... | |
kBool | kObject_VHasForeignData (kObject object) |
Protected virtual method that reports whether the object, including aggregated child elements, contains any foreign memory references. More... | |
kSize | kObject_VHashCode (kObject object) |
Protected virtual method that calculates a hash code representing the object instance. More... | |
kStatus | kObject_VInitClone (kObject object, kObject source, kAlloc allocator) |
Protected virtual method that clones (makes a deep copy of) the specified source object. More... | |
kStatus | kObject_VRelease (kObject object) |
Protected virtual method that deallocates any resources owned by the object. More... | |
kSize | kObject_VSize (kObject object) |
Protected virtual method that calculates the total size (in bytes) of the object instance. More... | |