00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIOM_DATA_HANDLER_H
00020 #define AXIOM_DATA_HANDLER_H
00021
00027 #include <axutil_utils.h>
00028 #include <axutil_error.h>
00029 #include <axutil_utils_defines.h>
00030 #include <axutil_env.h>
00031 #include <axutil_allocator.h>
00032 #include <axutil_string.h>
00033 #include <axutil_array_list.h>
00034
00035 #ifdef __cplusplus
00036 extern "C"
00037 {
00038 #endif
00039
00040 typedef enum axiom_data_handler_type
00041 {
00042 AXIOM_DATA_HANDLER_TYPE_FILE,
00043 AXIOM_DATA_HANDLER_TYPE_BUFFER
00044 } axiom_data_handler_type_t;
00045
00046 typedef struct axiom_data_handler axiom_data_handler_t;
00047
00053 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00054
00055 axiom_data_handler_get_content_type(
00056 axiom_data_handler_t * data_handler,
00057 const axutil_env_t * env);
00058
00059 AXIS2_EXTERN axis2_byte_t *AXIS2_CALL
00060
00061 axiom_data_handler_get_input_stream(
00062 axiom_data_handler_t * data_handler,
00063 const axutil_env_t * env);
00064
00065 AXIS2_EXTERN int AXIS2_CALL
00066 axiom_data_handler_get_input_stream_len(
00067 axiom_data_handler_t * data_handler,
00068 const axutil_env_t * env);
00069
00070 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00071 axiom_data_handler_read_from(
00072 axiom_data_handler_t * data_handler,
00073 const axutil_env_t * env,
00074 axis2_byte_t ** output_stream,
00075 int *output_stream_size);
00076
00077 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00078
00079 axiom_data_handler_set_binary_data(
00080 axiom_data_handler_t * data_handler,
00081 const axutil_env_t * env,
00082 axis2_byte_t * input_stream,
00083 int input_stream_len);
00084
00085 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00086 axiom_data_handler_write_to(
00087 axiom_data_handler_t * data_handler,
00088 const axutil_env_t * env);
00089
00090 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00091 axiom_data_handler_set_file_name(
00092 axiom_data_handler_t * data_handler,
00093 const axutil_env_t * env,
00094 axis2_char_t * file_name);
00095
00096 AXIS2_EXTERN void AXIS2_CALL
00097 axiom_data_handler_free(
00098 axiom_data_handler_t * data_handler,
00099 const axutil_env_t * env);
00100
00105 AXIS2_EXTERN axiom_data_handler_t *AXIS2_CALL
00106 axiom_data_handler_create(
00107 const axutil_env_t * env,
00108 const axis2_char_t * file_name,
00109 const axis2_char_t * mime_type);
00110
00113 #ifdef __cplusplus
00114 }
00115 #endif
00116 #endif