00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef AB_VALUE_H
00016 #define AB_VALUE_H
00017
00018 #include <gwenhywfar/buffer.h>
00019 #include <gwenhywfar/db.h>
00020 #include <gwenhywfar/list.h>
00021 #include <gwenhywfar/types.h>
00022
00023 #include <aqbanking/error.h>
00024
00025 #include <stdio.h>
00026
00027
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031
00032 typedef struct AB_VALUE AB_VALUE;
00033 GWEN_LIST_FUNCTION_LIB_DEFS(AB_VALUE, AB_Value, AQBANKING_API)
00034
00035
00038 AQBANKING_API AB_VALUE_LIST *AB_Value_List_dup(const AB_VALUE_LIST *vl);
00039
00040
00041 AQBANKING_API AB_VALUE *AB_Value_new(void);
00042 AQBANKING_API AB_VALUE *AB_Value_dup(const AB_VALUE *ov);
00043 AQBANKING_API void AB_Value_free(AB_VALUE *v);
00044
00050 AQBANKING_API AB_VALUE *AB_Value_fromString(const char *s);
00051
00057 AQBANKING_API void AB_Value_toString(const AB_VALUE *v, GWEN_BUFFER *buf);
00058
00059 AQBANKING_API void AB_Value_toHumanReadableString(const AB_VALUE *v,
00060 GWEN_BUFFER *buf,
00061 int prec);
00062
00063 AQBANKING_API void AB_Value_toHumanReadableString2(const AB_VALUE *v,
00064 GWEN_BUFFER *buf,
00065 int prec,
00066 int withCurrency);
00067
00068 AQBANKING_API AB_VALUE *AB_Value_fromDouble(double i);
00069
00070
00072 AQBANKING_API AB_VALUE *AB_Value_fromDb(GWEN_DB_NODE *db);
00073
00075 AQBANKING_API int AB_Value_toDb(const AB_VALUE *v, GWEN_DB_NODE *db);
00076
00078 AQBANKING_API int AB_Value_toDbFloat(const AB_VALUE *v, GWEN_DB_NODE *db);
00079
00085 AQBANKING_API double AB_Value_GetValueAsDouble(const AB_VALUE *v);
00086
00087
00094 AQBANKING_API void AB_Value_SetValueFromDouble(AB_VALUE *v, double i);
00095
00101 AQBANKING_API int AB_Value_GetNumDenomString(const AB_VALUE *v,
00102 char *buffer,
00103 uint32_t buflen);
00104
00105 AQBANKING_API void AB_Value_SetZero(AB_VALUE *v);
00106
00107 AQBANKING_API int AB_Value_IsZero(const AB_VALUE *v);
00108 AQBANKING_API int AB_Value_IsNegative(const AB_VALUE *v);
00109 AQBANKING_API int AB_Value_IsPositive(const AB_VALUE *v);
00110 AQBANKING_API int AB_Value_Compare(const AB_VALUE *v1, const AB_VALUE *v2);
00111
00112 AQBANKING_API int AB_Value_AddValue(AB_VALUE *v1, const AB_VALUE *v2);
00113 AQBANKING_API int AB_Value_SubValue(AB_VALUE *v1, const AB_VALUE *v2);
00114 AQBANKING_API int AB_Value_MultValue(AB_VALUE *v1, const AB_VALUE *v2);
00115 AQBANKING_API int AB_Value_DivValue(AB_VALUE *v1, const AB_VALUE *v2);
00116
00117 AQBANKING_API int AB_Value_Negate(AB_VALUE *v);
00118
00119
00120 AQBANKING_API const char *AB_Value_GetCurrency(const AB_VALUE *v);
00121 AQBANKING_API void AB_Value_SetCurrency(AB_VALUE *v, const char *s);
00122
00123
00124 AQBANKING_API void AB_Value_Dump(const AB_VALUE *v, FILE *f, unsigned int indent);
00125
00126 #ifdef __cplusplus
00127 }
00128 #endif
00129
00130
00131 #endif
00132
00133
00134
00135
00136
00137
00138
00139