aqbanking 5.0.14
value.h
Go to the documentation of this file.
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