00001 /*************************************************************************** 00002 $RCSfile$ 00003 ------------------- 00004 cvs : $Id: value.h 963 2006-03-15 09:51:49Z aquamaniac $ 00005 begin : Mon Apr 05 2004 00006 copyright : (C) 2004 by Martin Preuss 00007 email : martin@libchipcard.de 00008 00009 *************************************************************************** 00010 * Please see toplevel file COPYING for license details * 00011 ***************************************************************************/ 00012 00013 00014 #ifndef AQBANKING_VALUE_H 00015 #define AQBANKING_VALUE_H 00016 00017 #include <gwenhywfar/db.h> 00018 #include <gwenhywfar/buffer.h> 00019 #include <aqbanking/error.h> /* for AQBANKING_API */ 00020 00021 #ifdef __cplusplus 00022 extern "C" { 00023 #endif 00024 00033 typedef struct AB_VALUE AB_VALUE; 00034 00045 AQBANKING_API 00046 AB_VALUE *AB_Value_new(double value, const char *currency); 00047 00049 AQBANKING_API 00050 AB_VALUE *AB_Value_dup(const AB_VALUE *v); 00051 00064 AQBANKING_API 00065 AB_VALUE *AB_Value_fromString(const char *s); 00066 00070 AQBANKING_API 00071 int AB_Value_toString(const AB_VALUE *v, GWEN_BUFFER *buf); 00072 00074 AQBANKING_API 00075 AB_VALUE *AB_Value_fromDb(GWEN_DB_NODE *db); 00076 00078 AQBANKING_API 00079 int AB_Value_toDb(const AB_VALUE *v, GWEN_DB_NODE *db); 00080 00082 AQBANKING_API 00083 void AB_Value_free(AB_VALUE *v); 00090 AQBANKING_API 00091 double AB_Value_GetValue(const AB_VALUE *v); 00092 00094 AQBANKING_API 00095 void AB_Value_SetValue(AB_VALUE *v, double d); 00096 00100 AQBANKING_API 00101 const char *AB_Value_GetCurrency(const AB_VALUE *v); 00102 00105 AQBANKING_API 00106 void AB_Value_SetCurrency(AB_VALUE *v, const char *s); 00114 AQBANKING_API 00115 int AB_Value_IsValid(const AB_VALUE *v); 00116 00119 AQBANKING_API 00120 int AB_Value_IsNegative(const AB_VALUE *v); 00121 00124 AQBANKING_API 00125 int AB_Value_IsPositive(const AB_VALUE *v); 00126 00129 AQBANKING_API 00130 int AB_Value_IsZero(const AB_VALUE *v); 00131 00135 AQBANKING_API 00136 int AB_Value_IsEqual(const AB_VALUE *v1, const AB_VALUE *v2); 00137 00141 AQBANKING_API 00142 int AB_Value_Compare(const AB_VALUE *v1, const AB_VALUE *v2); 00152 AQBANKING_API 00153 int AB_Value_AddValue(AB_VALUE *v, const AB_VALUE *vToAdd); 00154 00159 AQBANKING_API 00160 int AB_Value_SubValue(AB_VALUE *v, const AB_VALUE *vToSub); 00161 00164 AQBANKING_API 00165 int AB_Value_Negate(AB_VALUE *v); 00168 #ifdef __cplusplus 00169 } 00170 #endif 00171 00172 #endif /* AQBANKING_VALUE_H */ 00173 00174