summaryrefslogtreecommitdiffstats
path: root/include/axis2_callback_recv.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/axis2_callback_recv.h')
-rw-r--r--include/axis2_callback_recv.h117
1 files changed, 117 insertions, 0 deletions
diff --git a/include/axis2_callback_recv.h b/include/axis2_callback_recv.h
new file mode 100644
index 0000000..0192c63
--- /dev/null
+++ b/include/axis2_callback_recv.h
@@ -0,0 +1,117 @@
+
+/*
+* 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_CALLBACK_RECV_H
+#define AXIS2_CALLBACK_RECV_H
+
+/**
+ * @defgroup axis2_callback_recv callback message receiver. This can be considered as a
+ * message receiver implementation for application client side which is similar to
+ * server side message receivers like raw_xml_in_out_msg_recv. Messages received by
+ * listener manager will finally end up here.
+ *
+ * @ingroup axis2_client_api
+ * callback message receiver, that is used as the message receiver in the
+ * operation in case of asynchronous invocation for receiving the result.
+ */
+
+/**
+ * @file axis2_axis2_callback_recv.h
+ */
+
+#include <axis2_defines.h>
+#include <axutil_env.h>
+#include <axis2_msg_recv.h>
+#include <axis2_callback.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /** Type name for struct axis2_callback_recv */
+ typedef struct axis2_callback_recv axis2_callback_recv_t;
+
+ /**
+ * Gets the base struct which is of type message receiver.
+ * @param callback_recv pointer to callback receiver struct
+ * @param env pointer to environment struct
+ * @return pointer to base message receiver struct
+ */
+ AXIS2_EXTERN axis2_msg_recv_t *AXIS2_CALL
+ axis2_callback_recv_get_base(
+ axis2_callback_recv_t * callback_recv,
+ const axutil_env_t * env);
+
+ /**
+ * Frees the callback receiver struct.
+ * @param callback_recv pointer to callback receiver struct
+ * @param env pointer to environment struct
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN void AXIS2_CALL
+ axis2_callback_recv_free(
+ axis2_callback_recv_t * callback_recv,
+ const axutil_env_t * env);
+
+ /**
+ * Adds a callback corresponding to given WSA message ID to message
+ * receiver.
+ * @param callback_recv pointer to callback receiver struct
+ * @param env pointer to environment struct
+ * @param msg_id message ID indicating which message the callback is
+ * supposed to deal with
+ * @param callback callback to be added. callback receiver assumes
+ * ownership of the callback
+ * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
+ */
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axis2_callback_recv_add_callback(
+ struct axis2_callback_recv *callback_recv,
+ const axutil_env_t * env,
+ const axis2_char_t * msg_id,
+ axis2_callback_t * callback);
+
+ /**
+ * Creates a callback receiver struct.
+ * @param env pointer to environment struct
+ * @return a pointer to newly created callback receiver struct,
+ * or NULL on error with error code set in environment's error
+ */
+ AXIS2_EXTERN axis2_callback_recv_t *AXIS2_CALL
+ axis2_callback_recv_create(
+ const axutil_env_t * env);
+
+ /** Gets the base message receiver. */
+#define AXIS2_CALLBACK_RECV_GET_BASE(callback_recv, env) \
+ axis2_callback_recv_get_base(callback_recv, env)
+
+ /** Frees callback message receiver. */
+#define AXIS2_CALLBACK_RECV_FREE(callback_recv, env) \
+ axis2_callback_recv_free(callback_recv, env)
+
+ /** Adds callback to callback message receiver. */
+#define AXIS2_CALLBACK_RECV_ADD_CALLBACK(callback_recv, env, msg_id, callback)\
+ axis2_callback_recv_add_callback(callback_recv, env, msg_id, callback)
+
+ /** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_CALLBACK_RECV_H */