# axiom_mime_parser.h

Go to the documentation of this file.

    00001
    00002 /*
    00003  * Licensed to the Apache Software Foundation (ASF) under one or more
    00004  * contributor license agreements.  See the NOTICE file distributed with
    00005  * this work for additional information regarding copyright ownership.
    00006  * The ASF licenses this file to You under the Apache License, Version 2.0
    00007  * (the "License"); you may not use this file except in compliance with
    00008  * the License.  You may obtain a copy of the License at
    00009  *
    00010  *      http://www.apache.org/licenses/LICENSE-2.0
    00011  *
    00012  * Unless required by applicable law or agreed to in writing, software
    00013  * distributed under the License is distributed on an "AS IS" BASIS,
    00014  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00015  * See the License for the specific language governing permissions and
    00016  * limitations under the License.
    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     /*AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
    00063     axiom_mime_parser_parse(
    00064         axiom_mime_parser_t * mime_parser,
    00065         const axutil_env_t * env,
    00066         AXIS2_READ_INPUT_CALLBACK,
    00067         void *callback_ctx,
    00068         axis2_char_t * mime_boundary);*/
    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                          /* AXIOM_MIME_PARSER_H */