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 *****************************************************************************/ 00021 #ifndef ALP_POSTAL_PROPERTY_H 00022 #define ALP_POSTAL_PROPERTY_H 00023 00024 /****************************************************************************** 00025 * Includes 00026 *****************************************************************************/ 00027 00028 #include <alp/postal_types.h> 00029 00030 #ifdef ALP_BUILD 00031 #include <sys/time.h> 00032 #else 00033 // ACS Depend 00034 #endif /* ALP_BUILD */ 00035 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif /* __cplusplus */ 00039 00040 /****************************************************************************** 00041 * Defines 00042 *****************************************************************************/ 00043 00045 typedef uint8_t alp_postal_property_type_t; 00046 00048 typedef uint8_t alp_postal_property_number_t; 00049 00051 typedef uint32_t alp_postal_property_mask_t; 00052 00054 typedef void* alp_postal_property_value_t; 00055 00057 typedef const void* alp_postal_property_const_value_t; 00058 00064 #define ALP_POSTAL_PROPERTY_TYPE_C_STRING ((alp_postal_property_type_t)1<<0) 00065 00066 #define ALP_POSTAL_PROPERTY_TYPE_INT ((alp_postal_property_type_t)1<<1) 00067 00068 #define ALP_POSTAL_PROPERTY_TYPE_BOOLEAN ((alp_postal_property_type_t)1<<2) 00069 00070 #define ALP_POSTAL_PROPERTY_TYPE_BINARY ((alp_postal_property_type_t)1<<3) 00071 00072 #define ALP_POSTAL_PROPERTY_TYPE_DATE ((alp_postal_property_type_t)1<<4) 00073 /* @} */ 00074 00076 #define ALP_POSTAL_PROPERTY_READ_ONLY_FLAG ((alp_postal_property_type_t)1<<7) 00077 00083 #define ALP_POSTAL_PROPERTY_MASK_SERVICE_ID ((alp_postal_property_mask_t)0xFF000000) 00084 00085 #define ALP_POSTAL_PROPERTY_MASK_SERVICE_CLASS_ID ((alp_postal_property_mask_t)0x00FF0000) 00086 00087 #define ALP_POSTAL_PROPERTY_MASK_TYPE ((alp_postal_property_mask_t)0x00007F00) 00088 00089 #define ALP_POSTAL_PROPERTY_MASK_NUMBER ((alp_postal_property_mask_t)0x000000FF) 00090 00091 #define ALP_POSTAL_PROPERTY_MASK_READ_ONLY ((alp_postal_property_mask_t)0x00008000) 00092 /* @} */ 00093 00098 #define ALP_POSTAL_PROPERTY(service_id, service_class_id, property_type, property_id) \ 00099 (alp_postal_property_id_t) \ 00100 ((((alp_postal_property_id_t)service_id)<<24) \ 00101 | (((alp_postal_property_id_t)service_class_id)<<16) \ 00102 | (((alp_postal_property_id_t)property_type)<<8) \ 00103 | (((alp_postal_property_id_t)property_id))) 00104 00105 #define ALP_POSTAL_PROPERTY_READ_ONLY(service_id, service_class_id, property_type, property_id) \ 00106 (alp_postal_property_id_t) \ 00107 ((((alp_postal_property_id_t)service_id)<<24) \ 00108 | (((alp_postal_property_id_t)service_class_id)<<16) \ 00109 | (((alp_postal_property_id_t)property_type | (alp_postal_property_id_t)ALP_POSTAL_PROPERTY_READ_ONLY_FLAG)<<8) \ 00110 | (((alp_postal_property_id_t)property_id))) 00111 /* @} */ 00112 00118 #define ALP_POSTAL_PROPERTY_GET_NUMBER(property) \ 00119 (alp_postal_property_number_t)((property & ALP_POSTAL_PROPERTY_MASK_NUMBER)) 00120 00121 #define ALP_POSTAL_PROPERTY_GET_TYPE(property) \ 00122 (alp_postal_property_type_t)((property & ALP_POSTAL_PROPERTY_MASK_TYPE) >> 8) 00123 00124 #define ALP_POSTAL_PROPERTY_GET_SERVICE_CLASS_ID(property) \ 00125 (alp_postal_service_class_id_t)((property & ALP_POSTAL_PROPERTY_MASK_SERVICE_CLASS_ID) >> 16) 00126 00127 #define ALP_POSTAL_PROPERTY_GET_SERVICE_ID(property) \ 00128 (alp_postal_service_id_t)((property & ALP_POSTAL_PROPERTY_MASK_SERVICE_ID) >> 24) 00129 00130 #define ALP_POSTAL_PROPERTY_GET_READ_ONLY_FLAG(property) \ 00131 (bool)((property & ALP_POSTAL_PROPERTY_MASK_READ_ONLY) >> 8) 00132 /* @} */ 00133 00134 00135 /****************************************************************************** 00136 * Prototypes 00137 *****************************************************************************/ 00138 00145 alp_status_t alp_postal_property_get_string(AlpPostalProperty* iProperty, char** oStringValue); 00146 00153 alp_status_t alp_postal_property_get_int32(AlpPostalProperty* iProperty, int32_t* oIntValue); 00154 00161 alp_status_t alp_postal_property_get_int16(AlpPostalProperty* iProperty, int16_t* oIntValue); 00162 00169 alp_status_t alp_postal_property_get_int8(AlpPostalProperty* iProperty, int8_t* oIntValue); 00170 00177 alp_status_t alp_postal_property_get_uint32(AlpPostalProperty* iProperty, uint32_t* oIntValue); 00178 00185 alp_status_t alp_postal_property_get_uint16(AlpPostalProperty* iProperty, uint16_t* oIntValue); 00186 00193 alp_status_t alp_postal_property_get_uint8(AlpPostalProperty* iProperty, uint8_t* oIntValue); 00194 00201 alp_status_t alp_postal_property_get_bool(AlpPostalProperty* iProperty, bool* oBoolValue); 00202 00209 alp_status_t alp_postal_property_get_date(AlpPostalProperty* iProperty, alp_postal_time_t* oTimeValue); 00210 00218 alp_status_t alp_postal_property_get_binary(AlpPostalProperty* iProperty, uint8_t** oBuffer, size_t* oBufferSize); 00219 00220 #ifdef __cplusplus 00221 } 00222 #endif /* __cplusplus */ 00223 00224 #endif /* ALP_POSTAL_PROPERTY_H */ 00225
Copyright © 1999-2008 ACCESS CO., LTD. All rights reserved.