aqbanking 5.0.14
|
00001 /*************************************************************************** 00002 $RCSfile$ 00003 ------------------- 00004 cvs : $Id$ 00005 begin : Mon Apr 05 2004 00006 copyright : (C) 2004 by Martin Preuss 00007 email : martin@libchipcard.de 00008 00009 *************************************************************************** 00010 * This file is part of the project "AqBanking". * 00011 * Please see toplevel file COPYING of that project for license details. * 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 /* AB_VALUE_H */ 00148 00149 00150 00151 00152 00153 00154 00155