summaryrefslogtreecommitdiff
path: root/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h
diff options
context:
space:
mode:
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.h167
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