summaryrefslogtreecommitdiffstats
path: root/include/axis2_desc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/axis2_desc.h')
-rw-r--r--include/axis2_desc.h228
1 files changed, 228 insertions, 0 deletions
diff --git a/include/axis2_desc.h b/include/axis2_desc.h
new file mode 100644
index 0000000..fe2e9db
--- /dev/null
+++ b/include/axis2_desc.h
@@ -0,0 +1,228 @@
+
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#ifndef AXIS2_DESC_H
+#define AXIS2_DESC_H
+
+/**
+ * @defgroup axis2_description description
+ * @ingroup axis2_desc
+ * Base struct of description hierarchy. Encapsulates common data and functions
+ * of the description hierarchy.
+ * @{
+ */
+
+/**
+ * @file axis2_desc.h
+ */
+
+#include <axutil_param_container.h>
+#include <axutil_hash.h>
+#include <axis2_description.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /** Type name of struct axis2_desc */
+ typedef struct axis2_desc axis2_desc_t;
+
+ struct axis2_policy_include;
+ struct axis2_msg;
+
+ /**
+ * Creates a description struct instance.
+ * @param env pointer to environment struct
+ * @return pointer to newly created description
+ */
+ AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
+ axis2_desc_create(
+ const axutil_env_t * env);
+
+ /**
+ * Frees description struct.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @return void
+ */
+ AXIS2_EXTERN void AXIS2_CALL
+ axis2_desc_free(
+ axis2_desc_t * desc,
+ const axutil_env_t * env);
+
+ /**
+ * Adds given parameter to the list of parameters.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param param pointer to parameter
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_desc_add_param(
+ axis2_desc_t * desc,
+ const axutil_env_t * env,
+ axutil_param_t * param);
+
+ /**
+ * Gets named parameter.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param param_name parameter name string
+ * @return pointer to named parameter, NULL if it does not exist
+ */
+ AXIS2_EXTERN axutil_param_t *AXIS2_CALL
+ axis2_desc_get_param(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env,
+ const axis2_char_t * param_name);
+
+ /**
+ * Gets all parameters stored in description.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @return pointer to array list containing the list of parameters
+ */
+ AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
+ axis2_desc_get_all_params(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env);
+
+ /**
+ * Checks if a named parameter is locked.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param param_name parameter name string
+ * @return AXIS2_TRUE if parameter is locked, else AXIS2_FALSE
+ */
+ AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+ axis2_desc_is_param_locked(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env,
+ const axis2_char_t * param_name);
+
+ /**
+ * Adds child to the description. The type of children is based on the
+ * level of the description hierarchy. As an example, service has
+ * children of type operation, service group has children of type
+ * service
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param key key with which the child is to be added
+ * @param child child to be added
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_desc_add_child(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env,
+ const axis2_char_t * key,
+ const struct axis2_msg *child);
+
+ /**
+ * Gets all children.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @return pointer to hash map containing children
+ */
+ AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
+ axis2_desc_get_all_children(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env);
+
+ /**
+ * Gets child with given key.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param key key with which the child is stored
+ * @return pointer to child, returned as a void* value, need to cast to
+ * correct type
+ */
+ AXIS2_EXTERN void *AXIS2_CALL
+ axis2_desc_get_child(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env,
+ const axis2_char_t * key);
+
+ /**
+ * Removes the named child.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param key key that represents the child to be removed
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_desc_remove_child(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env,
+ const axis2_char_t * key);
+
+ /**
+ * Sets parent description.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param parent pointer to parent description
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_desc_set_parent(
+ axis2_desc_t * desc,
+ const axutil_env_t * env,
+ axis2_desc_t * parent);
+
+ /**
+ * Gets parent description.
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @return parent pointer to parent description
+ */
+ AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
+ axis2_desc_get_parent(
+ const axis2_desc_t * desc,
+ const axutil_env_t * env);
+
+ /**
+ * Sets policy include
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @param policy_include policy include to be added to description
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_desc_set_policy_include(
+ axis2_desc_t * desc,
+ const axutil_env_t * env,
+ struct axis2_policy_include *policy_include);
+
+ /**
+ * Gets policy include
+ * @param desc pointer to description
+ * @param env pointer to environment struct
+ * @return returns policy include that was added to description
+ * @sa axis2_policy_include
+ */
+ AXIS2_EXTERN struct axis2_policy_include *AXIS2_CALL
+ axis2_desc_get_policy_include(
+ axis2_desc_t * desc,
+ const axutil_env_t * env);
+
+ /** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_DESC_H */