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: