summaryrefslogtreecommitdiffstats
path: root/include/axis2_phase_rule.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/axis2_phase_rule.h')
-rw-r--r--include/axis2_phase_rule.h216
1 files changed, 216 insertions, 0 deletions
diff --git a/include/axis2_phase_rule.h b/include/axis2_phase_rule.h
new file mode 100644
index 0000000..de5b645
--- /dev/null
+++ b/include/axis2_phase_rule.h
@@ -0,0 +1,216 @@
+
+/*
+ * 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_PHASE_RULE_H
+#define AXIS2_PHASE_RULE_H
+
+/**
+ * @defgroup axis2_phase_rule phase rule
+ * @ingroup axis2_desc
+ * phase rule encapsulates data and operations related to phase rules for a
+ * given handler. phase rule lives within a handler.
+ * phase rules of a handler specify the relative location of the
+ * handler within the phase to which it belongs, with respect to other handlers
+ * in the phase or first and last positions of the handler chain of the phase.
+ * @{
+ */
+
+/**
+ * @file axis2_phase_rule.h
+ */
+
+#include <axis2_defines.h>
+#include <axutil_qname.h>
+#include <axutil_param.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /** Type name for struct axis2_phase_rule */
+ typedef struct axis2_phase_rule axis2_phase_rule_t;
+
+ /**
+ * Gets the name of the handler before which the handler associated with
+ * this rule should be placed.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @return name of handler before which the handler should be placed
+ */
+ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
+ axis2_phase_rule_get_before(
+ const axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env);
+
+ /**
+ * Sets the name of the handler before which the handler associated with
+ * this rule should be placed.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @param before name of handler before which the handler should be placed
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_phase_rule_set_before(
+ axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env,
+ const axis2_char_t * before);
+
+ /**
+ * Gets the name of the handler after which the handler associated with
+ * this rule should be placed.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @return name of handler after which the handler should be placed
+ */
+ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
+ axis2_phase_rule_get_after(
+ const axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env);
+
+ /**
+ * Sets the name of the handler after which the handler associated with
+ * this rule should be placed.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @param after name of handler after which the handler should be placed
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_phase_rule_set_after(
+ axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env,
+ const axis2_char_t * after);
+
+ /**
+ * Gets name.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @return name string
+ */
+ AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
+ axis2_phase_rule_get_name(
+ const axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env);
+
+ /**
+ * Sets name.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @param name name string
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_phase_rule_set_name(
+ axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env,
+ const axis2_char_t * name);
+
+ /**
+ * Checks if the handler is the first in phase.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @return AXIS2_TRUE if the handler associated with this rule is the
+ * first in phase, else AXIS2_FALSE
+ */
+ AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+ axis2_phase_rule_is_first(
+ const axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env);
+
+ /**
+ * Sets handler to be the first in phase.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @param first AXIS2_TRUE if the handler associated with this rule is the
+ * first in phase, else AXIS2_FALSE
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_phase_rule_set_first(
+ axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env,
+ axis2_bool_t first);
+
+ /**
+ * Checks if the handler is the last in phase.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @return AXIS2_TRUE if the handler associated with this rule is the
+ * last in phase, else AXIS2_FALSE
+ */
+ AXIS2_EXTERN axis2_bool_t AXIS2_CALL
+ axis2_phase_rule_is_last(
+ const axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env);
+
+ /**
+ * Sets handler to be the last in phase.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @param last AXIS2_TRUE if the handler associated with this rule is the
+ * last in phase, else AXIS2_FALSE
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_phase_rule_set_last(
+ axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env,
+ axis2_bool_t last);
+
+ /**
+ * Frees phase rule.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @return void
+ */
+ AXIS2_EXTERN void AXIS2_CALL
+ axis2_phase_rule_free(
+ axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env);
+
+ /**
+ * Clones phase rule.
+ * @param phase_rule pointer to phase rule
+ * @param env pointer to environment struct
+ * @return pointer to newly cloned phase rule
+ */
+ AXIS2_EXTERN axis2_phase_rule_t *AXIS2_CALL
+ axis2_phase_rule_clone(
+ axis2_phase_rule_t * phase_rule,
+ const axutil_env_t * env);
+
+ /**
+ * Creates a phase rule struct instance.
+ * @param env pointer to environment struct
+ * @param phase_name name of the phase rule
+ * @return pointer to newly created phase rule
+ */
+ AXIS2_EXTERN axis2_phase_rule_t *AXIS2_CALL
+ axis2_phase_rule_create(
+ const axutil_env_t * env,
+ const axis2_char_t * name);
+
+ /** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_PHASE_RULE_H */