home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / apache_2.2.8-win32-x86-no_ssl.msi / Data1.cab / _D0E27146176AE6698E56975BE1E8AA9B < prev    next >
Text File  |  2007-05-09  |  3KB  |  96 lines

  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. /** @} */
  96.