00001 /****************************************************************************** 00002 * Copyright (c) 1999-2008 ACCESS CO., LTD. All rights reserved. 00003 * Copyright (c) 2006 PalmSource, Inc (an ACCESS company). All rights reserved. 00004 *****************************************************************************/ 00019 #ifndef ALP_POSTAL_BODYPART_H 00020 #define ALP_POSTAL_BODYPART_H 00021 00022 /****************************************************************************** 00023 * Includes 00024 *****************************************************************************/ 00025 00026 #include <alp/postal_types.h> 00027 #include <alp/postal_property.h> 00028 00029 #ifdef __cplusplus 00030 extern "C" { 00031 #endif /* __cplusplus */ 00032 00033 /****************************************************************************** 00034 * Structure 00035 *****************************************************************************/ 00036 00038 typedef struct _AlpPostalPropertyContainer AlpPostalBodypart; 00039 00041 typedef struct _AlpPostalPropertyContainer AlpPostalBodyPartContainer; 00042 00044 typedef struct _AlpPostalPropertyContainerList AlpPostalBodyPartContainerList; 00045 00046 /****************************************************************************** 00047 * Type definition 00048 *****************************************************************************/ 00049 00051 typedef alp_postal_object_id_t alp_postal_bodypart_id_t; 00052 00054 #define ALP_POSTAL_BODYPART_INVALID_ID ((alp_postal_bodypart_id_t)ALP_POSTAL_INVALID_OBJECT_ID) 00055 00056 #define ALP_POSTAL_BODYPART_NO_PARENT ((alp_postal_bodypart_part_no_t)0) 00057 00058 #define ALP_POSTAL_BODYPART_INVALID_PART_NO ((alp_postal_bodypart_part_no_t)0) 00059 #define ALP_POSTAL_BODYPART_INVALID_ORDINAL_NO ((alp_postal_bodypart_ordinal_no_t)0) 00060 00061 typedef uint16_t alp_postal_bodypart_part_no_t; 00062 typedef uint16_t alp_postal_bodypart_ordinal_no_t; 00063 00069 #define ALP_POSTAL_PROPERTY_BODYPART_URI \ 00070 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 1) 00071 00072 #define ALP_POSTAL_PROPERTY_BODYPART_SIZE \ 00073 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 2) 00074 00075 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_DESCRIPTION \ 00076 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 3) 00077 00078 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_TYPE \ 00079 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 4) 00080 00081 #define ALP_POSTAL_PROPERTY_BODYPART_DISPOSITION \ 00082 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 5) 00083 00084 #define ALP_POSTAL_PROPERTY_BODYPART_NAME \ 00085 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 6) 00086 00087 #define ALP_POSTAL_PROPERTY_BODYPART_SMALL_CONTENT \ 00088 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 7) 00089 00090 #define ALP_POSTAL_PROPERTY_BODYPART_HEADER \ 00091 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 8) 00092 00093 #define ALP_POSTAL_PROPERTY_BODYPART_PART_NO \ 00094 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 9) 00095 00096 #define ALP_POSTAL_PROPERTY_BODYPART_HAS_CHILD \ 00097 ALP_POSTAL_PROPERTY_READ_ONLY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_BOOLEAN, 10) 00098 00099 #define ALP_POSTAL_PROPERTY_BODYPART_SMALL_CONTENT_BINARY \ 00100 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_BINARY, 11) 00101 00102 #define ALP_POSTAL_PROPERTY_BODYPART_TYPE \ 00103 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 12) 00104 00105 #define ALP_POSTAL_PROPERTY_BODYPART_ORDINAL_NO \ 00106 ALP_POSTAL_PROPERTY_READ_ONLY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 13) 00107 00108 #define ALP_POSTAL_PROPERTY_BODYPART_PARENT_NO \ 00109 ALP_POSTAL_PROPERTY_READ_ONLY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 14) 00110 00111 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_TYPE_CHARSET \ 00112 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 15) 00113 00114 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_DISPOSITION_FILENAME \ 00115 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 16) 00116 00117 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_DISPOSITION_FILENAME_NATIVE_CHARSET \ 00118 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 17) 00119 00120 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_TYPE_NAME \ 00121 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 18) 00122 00123 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_TYPE_NAME_NATIVE_CHARSET \ 00124 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 19) 00125 00126 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_TRANSFER_ENCODING \ 00127 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 20) 00128 00129 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_ID \ 00130 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 21) 00131 00132 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_LOCATION \ 00133 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 22) 00134 00135 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_NATIVE_CHARSET \ 00136 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 23) 00137 00138 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_STATUS \ 00139 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 24) 00140 00141 #define ALP_POSTAL_PROPERTY_BODYPART_CONTENT_TYPE_REPORT_TYPE \ 00142 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_C_STRING, 25) 00143 00144 #define ALP_POSTAL_PROPERTY_BODYPART_URI_DESCRIPTOR \ 00145 ALP_POSTAL_PROPERTY(ALP_POSTAL_SERVICE_ID_COMMON, ALP_POSTAL_SERVICE_CLASS_ID_BODYPART, ALP_POSTAL_PROPERTY_TYPE_INT, 26) 00146 /* @} */ 00147 00148 00150 typedef uint8_t alp_postal_bodypart_disposition_t; 00151 00157 #define ALP_POSTAL_BODYPART_DISPOSITION_INLINE ((alp_postal_bodypart_disposition_t)1) 00158 00159 #define ALP_POSTAL_BODYPART_DISPOSITION_ATTACHMENT ((alp_postal_bodypart_disposition_t)2) 00160 /* @} */ 00161 00163 typedef uint8_t alp_postal_bodypart_type_t; 00164 00170 #define ALP_POSTAL_BODYPART_TYPE_SMALL_TEXT ((alp_postal_bodypart_type_t)1) 00171 00172 #define ALP_POSTAL_BODYPART_TYPE_SMALL_BINARY ((alp_postal_bodypart_type_t)2) 00173 00174 #define ALP_POSTAL_BODYPART_TYPE_URI ((alp_postal_bodypart_type_t)3) 00175 00176 #define ALP_POSTAL_BODYPART_TYPE_MULTIPART ((alp_postal_bodypart_type_t)4) 00177 /* @} */ 00178 00179 00185 #define ALP_POSTAL_BODYPART_TYPE_SMALL_TEXT_MAX_SIZE 4096 00186 00187 #define ALP_POSTAL_BODYPART_TYPE_SMALL_BINARY_MAX_SIZE 4096 00188 /* @} */ 00189 00195 #define ALP_POSTAL_BODYPART_URI_PROPERTY_MAX_LENGTH 512 00196 /* @} */ 00197 00199 typedef uint8_t alp_postal_bodypart_content_status_t; 00200 00206 #define ALP_POSTAL_BODYPART_CONTENT_STATUS_COMPLETE ((alp_postal_bodypart_content_status_t)1) 00207 00208 #define ALP_POSTAL_BODYPART_CONTENT_STATUS_QUITED ((alp_postal_bodypart_content_status_t)2) 00209 00210 #define ALP_POSTAL_BODYPART_CONTENT_STATUS_TOOBIG ((alp_postal_bodypart_content_status_t)3) 00211 /* @} */ 00212 00214 typedef uint8_t alp_postal_bodypart_clone_method_t; 00215 00221 #define ALP_POSTAL_BODYPART_CLONE_ONE ((alp_postal_bodypart_clone_method_t)1) 00222 00223 #define ALP_POSTAL_BODYPART_CLONE_CHILDREN ((alp_postal_bodypart_clone_method_t)2) 00224 00225 #define ALP_POSTAL_BODYPART_CLONE_ALL ((alp_postal_bodypart_clone_method_t)3) 00226 /* @} */ 00227 00228 00229 /****************************************************************************** 00230 * Prototypes 00231 *****************************************************************************/ 00232 00238 alp_status_t alp_postal_bodypart_init(AlpPostalBodypart* iBodypartP); 00239 00245 alp_status_t alp_postal_bodypart_init_container_list(AlpPostalBodyPartContainerList* iBodypartCLP); 00246 00255 alp_status_t alp_postal_bodypart_set_property(AlpPostalBodypart* ioBodypartP, alp_postal_property_id_t iBodypartPropertyId, alp_postal_property_const_value_t iBodypartPropertyDataP, uint16_t iBodypartPropertyDataSize); 00256 00264 alp_status_t alp_postal_bodypart_get_property(AlpPostalBodypart* iBodypartP, alp_postal_property_id_t iPropertyId, AlpPostalProperty** oBodypartPropertyP); 00265 00272 alp_status_t alp_postal_bodypart_add_bodypart(AlpPostalBodyPartContainerList* iContainerListP, AlpPostalBodypart* iBodypartP); 00273 00281 alp_status_t alp_postal_bodypart_add_container(AlpPostalBodyPartContainerList* iContainerListP1, AlpPostalBodyPartContainerList* iContainerListP2, AlpPostalBodypart* iCompositeBodypartP); 00282 00289 alp_status_t alp_postal_bodypart_get_next(AlpPostalBodypart* iBodypart, AlpPostalBodypart** oNextBodypart); 00290 00297 alp_status_t alp_postal_bodypart_get_child(AlpPostalBodypart* iBodypart, AlpPostalBodypart** oChildBodypart); 00298 00305 alp_status_t alp_postal_bodypart_is_composite(AlpPostalBodypart* iBodypart, bool* oIsComposite); 00306 00314 alp_status_t alp_postal_bodypart_clone(const AlpPostalBodypart* iBodypart, AlpPostalBodypart* oBodypart, alp_postal_bodypart_clone_method_t iCloneMethod); 00315 00321 alp_status_t alp_postal_bodypart_free(AlpPostalBodypart* iBodypartP); 00322 00323 00324 #ifdef __cplusplus 00325 } 00326 #endif /* __cplusplus */ 00327 00328 #endif /* ALP_POSTAL_BODYPART_H */ 00329
Copyright © 1999-2008 ACCESS CO., LTD. All rights reserved.