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 AB_VALUE *AB_Value_fromDouble(double i);
00064
00065
00067 AQBANKING_API AB_VALUE *AB_Value_fromDb(GWEN_DB_NODE *db);
00068
00070 AQBANKING_API int AB_Value_toDb(const AB_VALUE *v, GWEN_DB_NODE *db);
00071
00072
00078 AQBANKING_API double AB_Value_GetValueAsDouble(const AB_VALUE *v);
00079
00080
00087 AQBANKING_API void AB_Value_SetValueFromDouble(AB_VALUE *v, double i);
00088
00094 AQBANKING_API int AB_Value_GetNumDenomString(const AB_VALUE *v,
00095 char *buffer,
00096 uint32_t buflen);
00097
00098 AQBANKING_API void AB_Value_SetZero(AB_VALUE *v);
00099
00100 AQBANKING_API int AB_Value_IsZero(const AB_VALUE *v);
00101 AQBANKING_API int AB_Value_IsNegative(const AB_VALUE *v);
00102 AQBANKING_API int AB_Value_IsPositive(const AB_VALUE *v);
00103 AQBANKING_API int AB_Value_Compare(const AB_VALUE *v1, const AB_VALUE *v2);
00104
00105 AQBANKING_API int AB_Value_AddValue(AB_VALUE *v1, const AB_VALUE *v2);
00106 AQBANKING_API int AB_Value_SubValue(AB_VALUE *v1, const AB_VALUE *v2);
00107 AQBANKING_API int AB_Value_MultValue(AB_VALUE *v1, const AB_VALUE *v2);
00108 AQBANKING_API int AB_Value_DivValue(AB_VALUE *v1, const AB_VALUE *v2);
00109
00110 AQBANKING_API int AB_Value_Negate(AB_VALUE *v);
00111
00112
00113 AQBANKING_API const char *AB_Value_GetCurrency(const AB_VALUE *v);
00114 AQBANKING_API void AB_Value_SetCurrency(AB_VALUE *v, const char *s);
00115
00116
00117 AQBANKING_API void AB_Value_Dump(const AB_VALUE *v, FILE *f, unsigned int indent);
00118
00119 #ifdef __cplusplus
00120 }
00121 #endif
00122
00123
00124 #endif
00125
00126
00127
00128
00129
00130
00131
00132