ktoblzcheck  1.59.0
ktoblzcheck.h
Go to the documentation of this file.
1 
31 #ifndef KTOBLZCHECK_H
32 #define KTOBLZCHECK_H
33 
34 /*
35  * This file is AUTO-GENERATED from ktoblzcheck.h.in! All changes
36  * here will be lost!
37  */
38 
42 #define KTOBLZCHECK_VERSION_MAJOR 1
43 
46 #define KTOBLZCHECK_VERSION_MINOR 59
47 
55 #ifdef __cplusplus
56 
57 #include <string>
58 #include <map>
59 #include <vector>
60 #include <ctime>
61 #include <chrono>
62 #include <memory>
63 
64 #if defined(_WIN32) && defined(ERROR)
65 #undef ERROR
66 #endif
67 
68 #include "ktoblzcheck_export.h"
69 
80 public:
81 
98  typedef enum Result {
100  OK = 0,
103  UNKNOWN = 1,
106  ERROR = 2,
109  } Result;
110 
128  class Record {
129  public:
131  std::string bankId;
136  std::string method;
139  std::string bankName;
141  std::string location;
143  Record();
145  Record(unsigned long id, const std::string &method,
146  const std::string &name,
147  const std::string &loc);
149  Record(const char *id, const char *method,
150  const char *name,
151  const char *loc);
152  };
153 
169 
180  AccountNumberCheck(const std::string &filename);
181 
190 
201  static AccountNumberCheck *createChecker(const std::string &country);
202 
214  Result check(const std::string &bankId, const std::string &accountId, const std::string &method = "") const;
215 
231  const Record &findBank(const std::string &bankId) const;
232 
236  unsigned int bankCount() const;
237 
249  {
250  return 0;
251  }
252 
262  {
263  return std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
264  }
265 
275  KTOBLZCHECK_DEPRECATED bool isDataValidForDate(std::time_t date) const;
276 
288  KTOBLZCHECK_DEPRECATED bool isValidDataAvailable(std::time_t date) const;
289 
303  KTOBLZCHECK_DEPRECATED std::time_t closestValidData(std::time_t date) const;
304 
319  KTOBLZCHECK_DEPRECATED bool loadDataForDate(std::time_t date);
320 
333 
342  void createIndex();
343 
347  static std::string resultToString(Result r);
348 
372  static const char *stringEncoding();
379  static const char *libraryVersion();
385  static std::string bankdata_dir();
393  static bool isValidDatabase(const std::string &filename);
394 
400  static bool existDatabase(const std::string &dbname);
402 
403 private:
405  typedef std::map < std::string, Record * > banklist_type;
407  banklist_type data;
408 
409 public:
410 #ifndef DOXYGEN_IGNORE
411 
412  typedef Result (*MethodFunc)(const int *account, int *weight);
414  typedef Result (*MethodFuncLong)(const int *account, int *weight, const std::string &accountId, const std::string &bankId);
415 #endif // DOXYGEN_IGNORE
416 
417 private:
418  typedef std::map < std::string, MethodFunc > method_map_t;
419  method_map_t method_map;
420  typedef std::map < std::string, MethodFuncLong > method_map2_t;
421  method_map2_t method_map2;
422 
423  std::time_t data_valid_start;
424  std::time_t data_valid_end;
425  typedef std::pair < std::time_t, std::time_t > Daterange;
426  typedef std::pair < std::string, Daterange > FileDaterange;
427  typedef std::vector < FileDaterange > DatedFiles;
428 
430  std::string country;
431 
433  void deleteList();
436  void readFile(const std::string &filename);
437 
439  void initMethodMap();
440 
446  static int callback(void *objPtr, int argc, char **argv, char **azColName);
447 
450  static int setCountryCallback(void *objPtr, int argc, char **argv, char **azColName);
451 
454  int readDatabase(int argc, char **argv);
455 
456  /* Method to set the country
457  * code based on the database country field. */
458  int setCountry(int argc, char **argv);
459 };
460 
470 {
471 public:
472 
483  DataUpdater();
484 
488  ~DataUpdater();
489 
493  bool isUpdateAvailable();
494 
503  bool downloadDatabase(const std::string &filename);
504 
510  bool downloadAllDatabases();
511 private:
512 
513  //Class containing all the implementation details of DataUpdater
514  class UpdaterImpl;
515 
516  std::unique_ptr < UpdaterImpl > mUpdaterImpl;
517 };
518 
521 
522 extern "C" {
523 #else /* __cplusplus */
524 typedef int AccountNumberCheck_Result;
527 #endif /* __cplusplus */
528 
531 
547 
558 AccountNumberCheck *AccountNumberCheck_new_file(const char *filename);
559 
569 
590 AccountNumberCheck_check(const AccountNumberCheck *a, const char *bankId, const char *accountId);
591 
607 
611 unsigned int
613 
665 void
667 
675 
677 const char *
679 
682 const char *
684 
686 const char *
690 #ifdef __cplusplus
691 }
692 #endif /* __cplusplus */
693 
694 #endif /* KTOBLZCHECK_H */
695 
696 /*
697  * This file is AUTO-GENERATED from ktoblzcheck.h.in! All changes
698  * here will be lost!
699  */
Result
Definition: ktoblzcheck.h:98
KTOBLZCHECK_DEPRECATED std::string getFilenameClosestDateToday() const
AccountNumberCheck * AccountNumberCheck_new_file(const char *filename)
KTOBLZCHECK_DEPRECATED bool isDataValidForDate(std::time_t date) const
static AccountNumberCheck * createChecker(const std::string &country)
const char * AccountNumberCheck_stringEncoding()
std::string location
Definition: ktoblzcheck.h:141
const char * AccountNumberCheck_Record_bankId(const AccountNumberCheck_Record *a)
void AccountNumberCheck_Record_delete(AccountNumberCheck_Record *a)
German bank information database and account code verification.
Definition: ktoblzcheck.h:79
const char * AccountNumberCheck_libraryVersion()
static std::string bankdata_dir()
Result check(const std::string &bankId, const std::string &accountId, const std::string &method="") const
KTOBLZCHECK_DEPRECATED bool loadDataForDate(std::time_t date)
Definition: ktoblzcheck.h:103
#define KTOBLZCHECK_DEPRECATED
Definition: src/include/ktoblzcheck_export.h:24
AccountNumberCheck::Result AccountNumberCheck_Result
Definition: ktoblzcheck.h:519
Definition: ktoblzcheck.h:108
AccountNumberCheck_Record * AccountNumberCheck_Record_copy(const AccountNumberCheck_Record *a)
AccountNumberCheck * AccountNumberCheck_new()
KTOBLZCHECK_DEPRECATED std::time_t dataValidStartDate() const
Definition: ktoblzcheck.h:248
const AccountNumberCheck_Record * AccountNumberCheck_findBank(const AccountNumberCheck *a, const char *bankId)
static const char * libraryVersion()
AccountNumberCheck_Result AccountNumberCheck_check(const AccountNumberCheck *a, const char *bankId, const char *accountId)
KTOBLZCHECK_DEPRECATED std::time_t dataValidEndDate() const
Definition: ktoblzcheck.h:261
static const char * stringEncoding()
static bool isValidDatabase(const std::string &filename)
void AccountNumberCheck_createIndex(AccountNumberCheck *a)
Database updater for the datafiles used by KtoBLZCheck.
Definition: ktoblzcheck.h:469
std::string bankName
Definition: ktoblzcheck.h:139
static std::string resultToString(Result r)
bool isUpdateAvailable()
const Record & findBank(const std::string &bankId) const
const char * AccountNumberCheck_Record_location(const AccountNumberCheck_Record *a)
void AccountNumberCheck_delete(AccountNumberCheck *a)
bool downloadDatabase(const std::string &filename)
std::string method
Definition: ktoblzcheck.h:136
Definition: ktoblzcheck.h:100
char * AccountNumberCheck_bankdata_dir()
static bool existDatabase(const std::string &dbname)
unsigned int AccountNumberCheck_bankCount(const AccountNumberCheck *a)
KTOBLZCHECK_DEPRECATED std::time_t closestValidData(std::time_t date) const
std::string bankId
Definition: ktoblzcheck.h:131
unsigned int bankCount() const
const char * AccountNumberCheck_Record_bankName(const AccountNumberCheck_Record *a)
bool downloadAllDatabases()
Available information about one bank.
Definition: ktoblzcheck.h:128
AccountNumberCheck::Record AccountNumberCheck_Record
Definition: ktoblzcheck.h:520
KTOBLZCHECK_DEPRECATED bool isValidDataAvailable(std::time_t date) const
Definition: ktoblzcheck.h:106