include/alp/postal_property.h

Go to the documentation of this file.
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 

Generated on Wed Jul 30 07:06:39 2008 by Doxygen 1.4.6 for ALP SDK + Hiker Documentation

Copyright © 1999-2008 ACCESS CO., LTD. All rights reserved.