00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIOM_MIME_PARSER_H
00020 #define AXIOM_MIME_PARSER_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_hash.h>
00034 #include <axiom_mime_const.h>
00035
00036 #ifdef __cplusplus
00037 extern "C"
00038 {
00039 #endif
00040
00041 #define AXIOM_MIME_PARSER_BUFFER_SIZE (1024 * 1024/2)
00042 #define AXIOM_MIME_PARSER_MAX_BUFFERS 1000
00043
00044 #define AXIOM_MIME_PARSER_END_OF_MIME_MAX_COUNT 100
00045
00046
00047 typedef struct axiom_mime_parser axiom_mime_parser_t;
00048
00062
00063
00064
00065
00066
00067
00068
00069
00070 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00071 axiom_mime_parser_parse_for_soap(
00072 axiom_mime_parser_t * mime_parser,
00073 const axutil_env_t * env,
00074 AXIS2_READ_INPUT_CALLBACK callback,
00075 void *callback_ctx,
00076 axis2_char_t * mime_boundary);
00077
00078
00079 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00080 axiom_mime_parser_parse_for_attachments(
00081 axiom_mime_parser_t * mime_parser,
00082 const axutil_env_t * env,
00083 AXIS2_READ_INPUT_CALLBACK callback,
00084 void *callback_ctx,
00085 axis2_char_t * mime_boundary,
00086 void *user_param);
00087
00088
00095 AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
00096 axiom_mime_parser_get_mime_parts_map(
00097 axiom_mime_parser_t * mime_parser,
00098 const axutil_env_t * env);
00099
00106 AXIS2_EXTERN void AXIS2_CALL
00107 axiom_mime_parser_free(
00108 axiom_mime_parser_t * mime_parser,
00109 const axutil_env_t * env);
00110
00117 AXIS2_EXTERN int AXIS2_CALL
00118 axiom_mime_parser_get_soap_body_len(
00119 axiom_mime_parser_t * mime_parser,
00120 const axutil_env_t * env);
00121
00128 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00129 axiom_mime_parser_get_soap_body_str(
00130 axiom_mime_parser_t * mime_parser,
00131 const axutil_env_t * env);
00132
00138 AXIS2_EXTERN axiom_mime_parser_t *AXIS2_CALL
00139 axiom_mime_parser_create(
00140 const axutil_env_t * env);
00141
00149 AXIS2_EXTERN void AXIS2_CALL
00150 axiom_mime_parser_set_buffer_size(
00151 axiom_mime_parser_t * mime_parser,
00152 const axutil_env_t * env,
00153 int size);
00154
00162 AXIS2_EXTERN void AXIS2_CALL
00163 axiom_mime_parser_set_max_buffers(
00164 axiom_mime_parser_t * mime_parser,
00165 const axutil_env_t * env,
00166 int num);
00167
00168
00177 AXIS2_EXTERN void AXIS2_CALL
00178 axiom_mime_parser_set_attachment_dir(
00179 axiom_mime_parser_t *mime_parser,
00180 const axutil_env_t *env,
00181 axis2_char_t *attachment_dir);
00182
00183
00193 AXIS2_EXTERN void AXIS2_CALL
00194 axiom_mime_parser_set_caching_callback_name(
00195 axiom_mime_parser_t *mime_parser,
00196 const axutil_env_t *env,
00197 axis2_char_t *callback_name);
00198
00199
00200 AXIS2_EXTERN void AXIS2_CALL
00201 axiom_mime_parser_set_mime_boundary(
00202 axiom_mime_parser_t *mime_parser,
00203 const axutil_env_t *env,
00204 axis2_char_t *mime_boundary);
00205
00206
00207 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00208 axiom_mime_parser_get_mime_boundary(
00209 axiom_mime_parser_t *mime_parser,
00210 const axutil_env_t *env);
00211
00212
00213
00214
00217 #ifdef __cplusplus
00218 }
00219 #endif
00220 #endif