74 Iban(
const std::string& iban,
bool normalize =
true);
81 return m_transmission;
86 if (m_printable.empty())
87 m_printable = createPrintable();
92 std::string m_transmission;
93 std::string m_printable;
96 static std::string createTransmission(
const std::string& iban_str);
98 std::string createPrintable()
const;
144 IbanCheck(
const std::string& filename =
"");
164 Result check(
const std::string& iban,
const std::string& country =
"")
const;
187 bool error()
const {
return m_IbanSpec.size() == 0; }
196 static const char *m_ResultText[];
198 typedef std::vector<std::string> svector;
203 unsigned int bic_start, bic_end;
207 typedef std::map<std::string,Spec*> specmap;
214 typedef std::map<std::string, Country*> countrymap;
216 friend std::istream&
operator>>(std::istream &is, Spec &spec);
217 friend std::istream&
operator>>(std::istream &is, Country &c);
219 bool readSpecTable(std::istream &fin,
const std::string& stopcomment);
220 bool readCountryTable(std::istream &fin);
221 static int to_number(
char c) {
return c -
'A' + 10; }
222 static std::string iban2number(
const std::string& iban);
223 static int modulo97(
const std::string& number);
226 countrymap m_CountryMap;
264 const char *country);
276 const char *country);
287 int *start,
int *end);
friend std::istream & operator>>(std::istream &is, Spec &spec)
int IbanCheck_selftest(IbanCheck *p)
const std::string & transmissionForm() const
Definition: iban.h:80
Result bic_position(const std::string &iban, int &start, int &end) const
const char * Iban_printableForm(Iban *iban)
IbanCheck::Result IbanCheck_Result
Definition: iban.h:229
the IBAN doesn't belong to the country
Definition: iban.h:124
IbanCheck_Result IbanCheck_check_iban(const IbanCheck *p, const Iban *iban, const char *country)
Iban * Iban_new(const char *iban, int normalize)
IbanCheck * IbanCheck_new(const char *filename)
Bad IBAN checksum, i.e. the IBAN probably contains a typo.
Definition: iban.h:125
int IbanCheck_error(const IbanCheck *p)
const char * Iban_transmissionForm(const Iban *iban)
bool error() const
Definition: iban.h:187
const char * IbanCheck_resultText(IbanCheck_Result res)
IBAN is too short to even check.
Definition: iban.h:120
IBAN is formally correct (length and checksum)
Definition: iban.h:119
Stores one IBAN (International Bank Account Number)
Definition: iban.h:54
IBAN has the wrong length.
Definition: iban.h:122
IBAN bank information database and IBAN verification.
Definition: iban.h:112
const std::string & printableForm()
Definition: iban.h:85
the 2-character IBAN prefix is unknown
Definition: iban.h:121
void IbanCheck_free(IbanCheck *p)
IbanCheck_Result IbanCheck_bic_position(const IbanCheck *p, const char *iban, int *start, int *end)
Result check(const Iban &iban, const std::string &country="") const
Definition: iban.h:157
IbanCheck_Result IbanCheck_check_str(const IbanCheck *p, const char *iban, const char *country)
static const char * resultText(Result res)
the country code to check against is unknown
Definition: iban.h:123
IbanCheck(const std::string &filename="")
Result
Definition: iban.h:116