00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_DATE_TIME_H
00018 #define AXIS2_DATE_TIME_H
00019
00020 #include <axis2_utils_defines.h>
00021 #include <axis2_env.h>
00022
00028 #ifdef __cplusplus
00029 extern "C"
00030 {
00031 #endif
00032
00040 typedef struct axis2_date_time_ops axis2_date_time_ops_t;
00041 typedef struct axis2_date_time axis2_date_time_t;
00042
00043 AXIS2_DECLARE_DATA struct axis2_date_time_ops
00044 {
00051 axis2_status_t (AXIS2_CALL *
00052 free)(axis2_date_time_t *date_time,
00053 const axis2_env_t *env);
00054
00062 axis2_status_t (AXIS2_CALL *
00063 deserialize_time) (axis2_date_time_t *date_time,
00064 const axis2_env_t *env,
00065 const char* time_str);
00066
00074 axis2_status_t (AXIS2_CALL *
00075 deserialize_date) (axis2_date_time_t *date_time,
00076 const axis2_env_t *env,
00077 const char* date_str);
00078
00086 axis2_status_t (AXIS2_CALL *
00087 deserialize_date_time) (axis2_date_time_t *date_time,
00088 const axis2_env_t *env,
00089 const char* date_time_str);
00090
00103 axis2_status_t (AXIS2_CALL*
00104 set_date_time ) (axis2_date_time_t* date_time,
00105 const axis2_env_t *env,
00106 int year, int month, int date,
00107 int hour, int min, int second );
00108
00115 char* (AXIS2_CALL *
00116 serialize_time) (axis2_date_time_t *date_time,
00117 const axis2_env_t *env );
00118
00125 char* (AXIS2_CALL *
00126 serialize_date) (axis2_date_time_t *date_time,
00127 const axis2_env_t *env );
00128
00135 char* (AXIS2_CALL *
00136 serialize_date_time) (axis2_date_time_t *date_time,
00137 const axis2_env_t *env );
00138
00139 } ;
00140
00141 AXIS2_DECLARE_DATA struct axis2_date_time
00142 {
00143 axis2_date_time_ops_t *ops;
00144 };
00145
00151 AXIS2_EXTERN axis2_date_time_t * AXIS2_CALL
00152 axis2_date_time_create(const axis2_env_t *env );
00153
00154
00155
00156 #define AXIS2_DATE_TIME_FREE(date_time, env) \
00157 ((date_time)->ops->free (date_time, env))
00158
00159 #define AXIS2_DATE_TIME_DESERIALIZE_TIME(date_time, env, time ) \
00160 ((date_time)->ops->deserialize_time (date_time, env, time_str))
00161
00162 #define AXIS2_DATE_TIME_DESERIALIZE_DATE(date_time, env, date) \
00163 ((date_time)->ops->deserialize_date (date_time, env, date_str))
00164
00165 #define AXIS2_DATE_TIME_DESERIALIZE_DATE_TIME(date_time, env, date_time_str ) \
00166 ((date_time)->ops->deserialize_date_time(date_time, env, date_time_str))
00167
00168 #define AXIS2_DATE_TIME_SET_DATE_TIME(date_time, env, \
00169 year, month, date, hour, min, second ) \
00170 ((date_time)->ops->set_date_time (date_time, env, \
00171 year, month, date, hour, min, second ) )
00172
00173 #define AXIS2_DATE_TIME_SERIALIZE_TIME(date_time, env) \
00174 ((date_time)->ops->serialize_time (date_time, env ) )
00175
00176 #define AXIS2_DATE_TIME_SERIALIZE_DATE(date_time, env) \
00177 ((date_time)->ops->serialize_date (date_time, env ) )
00178
00179 #define AXIS2_DATE_TIME_SERIALIZE_DATE_TIME(date_time, env) \
00180 ((date_time)->ops->serialize_date_time (date_time, env ) )
00181
00184 #ifdef __cplusplus
00185 }
00186 #endif
00187
00188 #endif