r8399: move the ejs and esp code closer to the directory layout used by the
[bbaumbach/samba-autobuild/.git] / source4 / lib / appweb / esp / espEnv.h
diff --git a/source4/lib/appweb/esp/espEnv.h b/source4/lib/appweb/esp/espEnv.h
new file mode 100644 (file)
index 0000000..a3c9d9f
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ *     @file   espEnv.h
+ *     @brief  ESP Environment Variables
+ */
+/********************************* Copyright **********************************/
+/*
+ *     @copy   default
+ *     
+ *     Copyright (c) Mbedthis Software LLC, 2003-2005. All Rights Reserved.
+ *     
+ *     This software is distributed under commercial and open source licenses.
+ *     You may use the GPL open source license described below or you may acquire 
+ *     a commercial license from Mbedthis Software. You agree to be fully bound 
+ *     by the terms of either license. Consult the LICENSE.TXT distributed with 
+ *     this software for full details.
+ *     
+ *     This software is open source; you can redistribute it and/or modify it 
+ *     under the terms of the GNU General Public License as published by the 
+ *     Free Software Foundation; either version 2 of the License, or (at your 
+ *     option) any later version. See the GNU General Public License for more 
+ *     details at: http://www.mbedthis.com/downloads/gplLicense.html
+ *     
+ *     This program is distributed WITHOUT ANY WARRANTY; without even the 
+ *     implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+ *     
+ *     This GPL license does NOT permit incorporating this software into 
+ *     proprietary programs. If you are unable to comply with the GPL, you must
+ *     acquire a commercial license to use this software. Commercial licenses 
+ *     for this software and support services are available from Mbedthis 
+ *     Software at http://www.mbedthis.com 
+ *     
+ *     @end
+ */
+
+/******************************************************************************/
+
+#ifndef _h_ESP_ENV_h
+#define _h_ESP_ENV_h 1
+
+/*
+ *     @brief Scripting environment variable array types
+ */
+typedef enum EspEnvType {
+       ESP_UNDEFINED_OBJ = -1,
+
+       /**     
+        *      Elements for server[]: 
+        *              DOCUMENT_ROOT GATEWAY_INTERFACE SERVER_ADDR SERVER_PORT SERVER_NAME 
+        *              SERVER_PROTOCOL SERVER_SOFTWARE SERVER_URL UPLOAD_DIR
+        *              FUTURE: SERVER_ADMIN 
+        *              FUTURE: this could be shared across all hosts and be made read-only.
+        */
+       ESP_SERVER_OBJ = 0,                                             /*! server[] data */
+
+       /**
+        *      Elements for session[]: are user defined
+        */
+       ESP_SESSION_OBJ = 1,                                    /*! session[] data */
+
+       /**     
+        *      Elements for request[]: 
+        *              AUTH_TYPE CONTENT_LENGTH CONTENT_TYPE QUERY_STRING PATH_INFO 
+        *              PATH_TRANSLATED REMOTE_ADDR REMOTE_HOST REMOTE_USER REQUEST_METHOD 
+        *              REQUEST_URI SCRIPT_FILENAME SCRIPT_NAME 
+        *              FUTURE: FILEPATH_INFO REDIRECT_URL SELF REMOTE_PORT AUTH_USER 
+        *              AUTH_GROUP AUTH_ACL 
+        */
+       ESP_REQUEST_OBJ = 2,                                    /*! request[] data */
+
+       /**     
+        *      Elements for headers[]: 
+        *              HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_CONNECTION HTTP_HOST 
+        *              HTTP_REFERER HTTP_USER_AGENT and any other custom headers
+        */
+       ESP_HEADERS_OBJ = 3,                                    /*! header [] data */
+
+       /**
+        *      Elements for cookies[]: are defined by the HTTP request
+        */
+       ESP_COOKIES_OBJ = 4,                                    /*! cookies[] data */
+       
+       /**
+        *      Elements for files[]: are defined by the HTTP request
+        *              CLIENT_FILENAME CONTENT_TYPE FILENAME SIZE
+        */
+       ESP_FILES_OBJ = 5,                                              /*! files[] data */
+
+       /**
+        *      Elements for form[]: are defined by the HTTP request
+        */
+       ESP_FORM_OBJ = 6,                                               /*! form[] data */
+
+       /**
+        *      Elements for application[]: are user defined
+        */
+       ESP_APPLICATION_OBJ = 7,                                /*! application[] data */
+
+       /**
+        *      Elements for global[]: are defined by ESP/EJS
+        */
+       ESP_GLOBAL_OBJ = 8,                                             /*! global [] data */
+
+       /*
+        *      Elements for local[]: are defined by ESP/EJS
+        */
+       ESP_LOCAL_OBJ = 9,                                              /*! local [] data */
+} EspEnvType;
+
+#define ESP_OBJ_MAX    10                                      /* Total objects */
+
+#if BLD_SQUEEZE
+#define ESP_HASH_SIZE  19                                      /* Size of hash tables */
+#else
+#define ESP_HASH_SIZE  37
+#endif
+
+/******************************************************************************/
+#endif /* _h_ESP_ENV_h */
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim:tw=78
+ * vim600: sw=4 ts=4 fdm=marker
+ * vim<600: sw=4 ts=4
+ */