Go to the documentation of this file.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
00072 AQBANKING_API AB_VALUE *AB_Value_fromInt(long int num, long int denom);
00073
00074
00076 AQBANKING_API AB_VALUE *AB_Value_fromDb(GWEN_DB_NODE *db);
00077
00079 AQBANKING_API int AB_Value_toDb(const AB_VALUE *v, GWEN_DB_NODE *db);
00080
00082 AQBANKING_API int AB_Value_toDbFloat(const AB_VALUE *v, GWEN_DB_NODE *db);
00083
00089 AQBANKING_API double AB_Value_GetValueAsDouble(const AB_VALUE *v);
00090
00091
00098 AQBANKING_API void AB_Value_SetValueFromDouble(AB_VALUE *v, double i);
00099
00105 AQBANKING_API int AB_Value_GetNumDenomString(const AB_VALUE *v,
00106 char *buffer,
00107 uint32_t buflen);
00108
00109 AQBANKING_API void AB_Value_SetZero(AB_VALUE *v);
00110
00111 AQBANKING_API int AB_Value_IsZero(const AB_VALUE *v);
00112 AQBANKING_API int AB_Value_IsNegative(const AB_VALUE *v);
00113 AQBANKING_API int AB_Value_IsPositive(const AB_VALUE *v);
00114 AQBANKING_API int AB_Value_Compare(const AB_VALUE *v1, const AB_VALUE *v2);
00115
00120 AQBANKING_API int AB_Value_Equal(const AB_VALUE *v1, const AB_VALUE *v2);
00121
00122 AQBANKING_API int AB_Value_AddValue(AB_VALUE *v1, const AB_VALUE *v2);
00123 AQBANKING_API int AB_Value_SubValue(AB_VALUE *v1, const AB_VALUE *v2);
00124 AQBANKING_API int AB_Value_MultValue(AB_VALUE *v1, const AB_VALUE *v2);
00125 AQBANKING_API int AB_Value_DivValue(AB_VALUE *v1, const AB_VALUE *v2);
00126
00127 AQBANKING_API int AB_Value_Negate(AB_VALUE *v);
00128
00129
00130 AQBANKING_API const char *AB_Value_GetCurrency(const AB_VALUE *v);
00131 AQBANKING_API void AB_Value_SetCurrency(AB_VALUE *v, const char *s);
00132
00133
00134 AQBANKING_API void AB_Value_Dump(const AB_VALUE *v, FILE *f, unsigned int indent);
00135
00137 AQBANKING_API long int AB_Value_Num(const AB_VALUE *v);
00139 AQBANKING_API long int AB_Value_Denom(const AB_VALUE *v);
00140
00141
00142 #ifdef __cplusplus
00143 }
00144 #endif
00145
00146
00147 #endif
00148
00149
00150
00151
00152
00153
00154
00155