~alinuxninja/nginx-edge/trunk

« back to all changes in this revision

Viewing changes to debian/modules/ngx_pagespeed/psol/include/third_party/httpd24/src/include/util_cfgtree.h

  • Committer: Vivian
  • Date: 2015-12-04 18:20:11 UTC
  • Revision ID: git-v1:a36f2bc32e884f7473b3a47040e5411306144d7d
* Do not extract psol.tar.gz

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
    struct ap_directive_t *next;
54
 
    /** The first child node of this directive */
55
 
    struct ap_directive_t *first_child;
56
 
    /** The parent node of this directive */
57
 
    struct ap_directive_t *parent;
58
 
 
59
 
    /** directive's module can store add'l data here */
60
 
    void *data;
61
 
 
62
 
    /* ### these may go away in the future, but are needed for now */
63
 
    /** The name of the file this directive was found in */
64
 
    const char *filename;
65
 
    /** The line number the directive was on */
66
 
    int line_num;
67
 
 
68
 
    /** A short-cut towards the last directive node in the tree.
69
 
     *  The value may not always be up-to-date but it always points to
70
 
     *  somewhere in the tree, nearer to the tail.
71
 
     *  This value is only set in the first node
72
 
     */
73
 
    struct ap_directive_t *last;
74
 
};
75
 
 
76
 
/**
77
 
 * The root of the configuration tree
78
 
 */
79
 
AP_DECLARE_DATA extern ap_directive_t *ap_conftree;
80
 
 
81
 
/**
82
 
 * Add a node to the configuration tree.
83
 
 * @param parent The current parent node.  If the added node is a first_child,
84
 
                 then this is changed to the current node
85
 
 * @param current The current node
86
 
 * @param toadd The node to add to the tree
87
 
 * @param child Is the node to add a child node
88
 
 * @return the added node
89
 
 */
90
 
ap_directive_t *ap_add_node(ap_directive_t **parent, ap_directive_t *current,
91
 
                            ap_directive_t *toadd, int child);
92
 
 
93
 
#ifdef __cplusplus
94
 
}
95
 
#endif
96
 
 
97
 
#endif
98
 
/** @} */