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 */

Generated on Fri Apr 17 11:49:43 2009 for Axis2/C by  doxygen 1.5.3