# neethi_engine.h

Go to the documentation of this file.

    00001
    00002 /*
    00003  * Licensed to the Apache Software Foundation (ASF) under one or more
    00004  * contributor license agreements.  See the NOTICE file distributed with
    00005  * this work for additional information regarding copyright ownership.
    00006  * The ASF licenses this file to You under the Apache License, Version 2.0
    00007  * (the "License"); you may not use this file except in compliance with
    00008  * the License.  You may obtain a copy of the License at
    00009  *
    00010  *      http://www.apache.org/licenses/LICENSE-2.0
    00011  *
    00012  * Unless required by applicable law or agreed to in writing, software
    00013  * distributed under the License is distributed on an "AS IS" BASIS,
    00014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00015  * See the License for the specific language governing permissions and
    00016  * limitations under the License.
    00017  */
    00018
    00019 #ifndef NEETHI_ENGINE_H
    00020 #define NEETHI_ENGINE_H
    00021
    00022 /*neethis_engine.c contains all the useful functions
    00023  * for dealing with a neethi_policy object
    00024  */
    00025
    00026
    00027
    00033 #include <axis2_defines.h>
    00034 #include <axutil_env.h>
    00035 #include <neethi_includes.h>
    00036 #include <neethi_operator.h>
    00037 #include <neethi_policy.h>
    00038 #include <neethi_all.h>
    00039 #include <neethi_exactlyone.h>
    00040 #include <neethi_reference.h>
    00041 #include <neethi_registry.h>
    00042 #include <neethi_assertion.h>
    00043
    00044 #ifdef __cplusplus
    00045 extern "C"
    00046 {
    00047 #endif
    00048
    00058     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
    00059     neethi_engine_get_policy(
    00060         const axutil_env_t * env,
    00061         axiom_node_t * node,
    00062         axiom_element_t * element);
    00063
    00075     /*This function will return a new neethi_policy struct.
    00076       So it is callers responsibility to free the neethi_policy
    00077       which is passed as an argument. */
    00078
    00079     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
    00080     neethi_engine_get_normalize(
    00081         const axutil_env_t * env,
    00082         axis2_bool_t deep,
    00083         neethi_policy_t * neethi_policy);
    00084
    00098     /*This function will return a new neethi_policy struct.
    00099       So it is callers responsibility to free the neethi_policy
    00100       which is passed as an argument. */
    00101
    00102
    00103     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
    00104     neethi_engine_normalize(
    00105         const axutil_env_t * env,
    00106         neethi_policy_t * neethi_policy,
    00107         neethi_registry_t * registry,
    00108         axis2_bool_t deep);
    00109
    00110     /*Givnen to normalized policy objects this function will
    00111       retun the merged policy object.
    00112     * @param env pointer to environment struct
    00113     * @param neethi_policy1 pointer neethi_policy_t struct as an
    00114     * input for merge.
    00115     * @param neethi_policy2 pointer neethi_policy_t struct as an
    00116     * input for merge.
    00117     * @return pointer to a merged policy of both inputs.*/
    00118
    00119     /*The input for this function should be two normalized policies
    00120       otherwise the output may be wrong.*/
    00121
    00122     AXIS2_EXTERN neethi_policy_t *AXIS2_CALL
    00123     neethi_engine_merge(
    00124         const axutil_env_t * env,
    00125         neethi_policy_t * neethi_policy1,
    00126         neethi_policy_t * neethi_policy2);
    00127
    00128     /*Given a policy object this function will give the
    00129      * corresponding axiom model for that policy object.
    00130      * @param policy pointer to the neethi_policy_t struct.
    00131      * @param env pointer to environment struct
    00132      */
    00133
    00134     AXIS2_EXTERN axiom_node_t *AXIS2_CALL
    00135     neethi_engine_serialize(
    00136         neethi_policy_t * policy,
    00137         const axutil_env_t * env);
    00138
    00140 #ifdef __cplusplus
    00141 }
    00142 #endif
    00143
    00144 #endif                          /* NEETHI_ENGINE_H */