aqbanking 5.0.2
|
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 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 /* AB_VALUE_H */ 00132 00133 00134 00135 00136 00137 00138 00139