Annotation of win32/apache22/include/util_cfgtree.h, revision 1.1
1.1 ! moko 1: /* Licensed to the Apache Software Foundation (ASF) under one or more
! 2: * contributor license agreements. See the NOTICE file distributed with
! 3: * this work for additional information regarding copyright ownership.
! 4: * The ASF licenses this file to You under the Apache License, Version 2.0
! 5: * (the "License"); you may not use this file except in compliance with
! 6: * the License. You may obtain a copy of the License at
! 7: *
! 8: * http://www.apache.org/licenses/LICENSE-2.0
! 9: *
! 10: * Unless required by applicable law or agreed to in writing, software
! 11: * distributed under the License is distributed on an "AS IS" BASIS,
! 12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
! 13: * See the License for the specific language governing permissions and
! 14: * limitations under the License.
! 15: */
! 16:
! 17: /**
! 18: * @file util_cfgtree.h
! 19: * @brief Config Tree Package
! 20: *
! 21: * @defgroup APACHE_CORE_CONFIG_TREE Config Tree Package
! 22: * @ingroup APACHE_CORE_CONFIG
! 23: * @{
! 24: */
! 25:
! 26: #ifndef AP_CONFTREE_H
! 27: #define AP_CONFTREE_H
! 28:
! 29: #include "ap_config.h"
! 30:
! 31: #ifdef __cplusplus
! 32: extern "C" {
! 33: #endif
! 34:
! 35: typedef struct ap_directive_t ap_directive_t;
! 36:
! 37: /**
! 38: * @brief Structure used to build the config tree.
! 39: *
! 40: * The config tree only stores
! 41: * the directives that will be active in the running server. Directives
! 42: * that contain other directions, such as <Directory ...> cause a sub-level
! 43: * to be created, where the included directives are stored. The closing
! 44: * directive (</Directory>) is not stored in the tree.
! 45: */
! 46: struct ap_directive_t {
! 47: /** The current directive */
! 48: const char *directive;
! 49: /** The arguments for the current directive, stored as a space
! 50: * separated list */
! 51: const char *args;
! 52: /** The next directive node in the tree
! 53: * @defvar ap_directive_t *next */
! 54: struct ap_directive_t *next;
! 55: /** The first child node of this directive
! 56: * @defvar ap_directive_t *first_child */
! 57: struct ap_directive_t *first_child;
! 58: /** The parent node of this directive
! 59: * @defvar ap_directive_t *parent */
! 60: struct ap_directive_t *parent;
! 61:
! 62: /** directive's module can store add'l data here */
! 63: void *data;
! 64:
! 65: /* ### these may go away in the future, but are needed for now */
! 66: /** The name of the file this directive was found in */
! 67: const char *filename;
! 68: /** The line number the directive was on */
! 69: int line_num;
! 70: };
! 71:
! 72: /**
! 73: * The root of the configuration tree
! 74: * @defvar ap_directive_t *conftree
! 75: */
! 76: AP_DECLARE_DATA extern ap_directive_t *ap_conftree;
! 77:
! 78: /**
! 79: * Add a node to the configuration tree.
! 80: * @param parent The current parent node. If the added node is a first_child,
! 81: then this is changed to the current node
! 82: * @param current The current node
! 83: * @param toadd The node to add to the tree
! 84: * @param child Is the node to add a child node
! 85: * @return the added node
! 86: */
! 87: ap_directive_t *ap_add_node(ap_directive_t **parent, ap_directive_t *current,
! 88: ap_directive_t *toadd, int child);
! 89:
! 90: #ifdef __cplusplus
! 91: }
! 92: #endif
! 93:
! 94: #endif
! 95: /** @} */
E-mail: