diff -r 1fdbf4170ef4 -r b8bf95b39952 src/server/object.h --- a/src/server/object.h Sun Jan 08 15:46:47 2012 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,163 +0,0 @@ -/* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. - * - * Copyright 2011 Olaf Wintermann. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef OBJECT_H -#define OBJECT_H - -#include "nsapi.h" -#include "pool.h" - -#ifdef __cplusplus -extern "C" { -#endif - -// TODO: Enum auslagern in andere Datei? -enum RequestPhase { - NSAPIAuthTrans = 0, - NSAPINameTrans, - NSAPIPathCheck, - NSAPIObjectType, - NSAPIService, - NSAPIAddLog, - REQ_FINISH, - NUM_NSAPI_TYPES -}; -typedef enum RequestPhase RequestPhase; - -typedef struct Condition Condition; -typedef int8_t ConditionResult; - -typedef struct NSAPIContext NSAPIContext; -typedef struct HTTPObjectConfig HTTPObjectConfig; - -struct directive { - FuncStruct *func; - pblock *param; - Condition *cond; -}; - -struct dtable { - directive **dirs; - int ndir; -}; - -struct httpd_object { - char *name; - char *path; - dtable *dt; - int nd; -}; - -struct httpd_objset { - httpd_object **obj; - int pos; -}; - -struct Condition { - Condition *parent; - int expression; - int index; /* used by NSAPIContext to link expression with result */ -}; - - -struct NSAPIContext{ - HTTPObjectConfig *conf; - - ConditionResult **results; - int nres; - - //httpd_objset *objset; - int last_req_code; - - int objset_index; - int dtable_index; -}; - -struct HTTPObjectConfig { - httpd_object **objects; - int nobj; - pool_handle_t *pool; -}; - -/* - * creates a new httpd_object - */ -httpd_object* object_new(char *name); - -/* - * frees an httpd_object - */ -void object_free(httpd_object *obj); - -/* - * adds a directive to the object with the type dt (enum RequestPhase) - */ -void object_add_directive(httpd_object *obj, directive *dir, int dt); - -/* - * get a list of all directives with a specific type - */ -#define object_get_dtable(obj,type) &obj->dt[type]; - - - -/* - * creates a new httpd_objset - */ -httpd_objset* objset_create(pool_handle_t *pool); - -/* - * adds a object to the objset - */ -void objset_add_object(pool_handle_t *p, httpd_objset *os, httpd_object *obj); - - -/* - * creates a new HTTPObjectConfig - */ -// TODO - -/* - * adds an object to the object configuration - */ -void httpobjconf_add_object(HTTPObjectConfig *conf, httpd_object *obj); - - - -/* - * prepares the NSAPI context for the next request stage - */ -void nsapi_context_next_stage(NSAPIContext *context); - - -#ifdef __cplusplus -} -#endif - -#endif /* OBJECT_H */ -