diff options
Diffstat (limited to 'ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h')
-rw-r--r-- | ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h new file mode 100644 index 00000000000..45180c5b884 --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h @@ -0,0 +1,167 @@ +/* + * $Id$ + * + * Copyright (c) 1994, 1995. Netscape Communications Corporation. All + * rights reserved. + * + * Use of this software is governed by the terms of the license agreement for + * the Netscape Communications or Netscape Comemrce Server between the + * parties. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * object.h: Handle httpd objects + * + * Manages information about a document from config. files. Called mainly + * by objset.c. + * + * This module does not assume anything about the directives being parsed. + * That is handled by objset.c. + * + * This module requires the pblock module from the base library. + * + * Rob McCool + * + */ + + +#ifndef OBJECT_H +#define OBJECT_H + + +#include "netsite.h" +#include "base/pblock.h" +#include "base/session.h" + + + + +/* ------------------------------ Constants ------------------------------- */ + + +/* The maximum directive length unabbreviated, plus one space */ +#define MAX_DNAME_LEN 11 +#define NUM_DIRECTIVES 7 + + +/* ------------------------------ Structures ------------------------------ */ + + + +/* + * Hierarchy of httpd_object + * + * An object contains dtables. + * + * Each dtable is a table of directives that were entered of a certain type. + * There is one dtable for each unique type of directive. + * + * Each dtable contains an array of directives, each of which is equivalent + * to one directive that occurred in a config. file. + * + * It is up to the caller to determine how many dtables will be allocated + * and to keep track of which of their directive types maps to which dtable + * number. + */ + + +/* + * directive is a structure containing the protection and parameters to an + * instance of a directive within an httpd_object. + * + * param is the parameters, client is the protection. + */ + +typedef struct { + pblock *param; + pblock *client; +} directive; + +/* + * dtable is a structure for creating tables of directives + */ + +typedef struct { + int ni; + directive *inst; +} dtable; + +/* + * The httpd_object structure. + * + * The name pblock array contains the names for this object, such as its + * virtual location, its physical location, or its identifier. + * + * tmpl contains any templates allocated to this object. + */ + +typedef struct { + pblock *name; + + int nd; + dtable *dt; +} httpd_object; + + + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * directive_name2num will return the position of the abbreviated directive + * dir in the directive table. + * + * If dir does not exist in the table, it will return -1. + */ + +int directive_name2num(char *dir); + + +/* + * directive_num2name returns a string describing directive number num. + */ + +const char *directive_num2name(int num); + + +/* + * object_create will create a new object and return a pointer to it. + * It will allocate space for nd directive types and set name accordingly. + */ + +httpd_object *object_create(int nd, pblock *name); + +/* + * object_free will free an object and any data associated with it. + */ + +void object_free(httpd_object *obj); + +/* + * object_add_directive will add a new directive to the dtable for + * the directive class at position dc. + */ + +void object_add_directive(int dc, pblock *p, pblock *c, httpd_object *obj); + + +/* + * object_findnext finds the object configured to follow the given object, + * and stores the variables in rq->vars. It returns REQ_PROCEED if more + * objects should be processed, or REQ_NOACTION if it did not find any + * further objects to process. If something bad happens, REQ_ABORTED is + * returned. + * + * Handles all DIRECTIVE_CONSTRUCT type directives such as NameTrans and + * AuthType. + */ + + +/* --------- Prototype moved to req.h because of interdependency ---------- */ + +#endif |