LibOFX
ofx_utilities.hh File Reference

Various simple functions for type conversion & al. More...

Go to the source code of this file.

Macros

#define ASSIGN(DEST, VALUE)   DEST = (VALUE); DEST ## _valid = true
 
#define ASSIGN_STRNCPY(DEST, VALUE)   STRNCPY(DEST, VALUE); DEST ## _valid = true
 

Functions

template<typename T >
void STRNCPY (T &dest, const std::string &src)
 
std::string CharStringtostring (const SGMLApplication::CharString source)
 Convert OpenSP CharString to a C++ STL string.
 
void AppendCharStringtostring (const SGMLApplication::CharString source, std::string &dest)
 Append an OpenSP CharString to an existing C++ STL string.
 
time_t ofxdate_to_time_t (const std::string &ofxdate)
 Convert a C++ string containing a time in OFX format to a C time_t. More...
 
double ofxamount_to_double (const std::string ofxamount)
 Convert OFX amount of money to double float. More...
 
std::string strip_whitespace (const std::string para_string)
 Sanitize a string coming from OpenSP. More...
 
int mkTempFileName (const char *tmpl, char *buffer, unsigned int size)
 

Detailed Description

Various simple functions for type conversion & al.

Definition in file ofx_utilities.hh.

Macro Definition Documentation

◆ ASSIGN

#define ASSIGN (   DEST,
  VALUE 
)    DEST = (VALUE); DEST ## _valid = true

Helper macro when assigning a value into the destination struct member which also has an accompanying "_valid" member which is also set to true.

Definition at line 45 of file ofx_utilities.hh.

◆ ASSIGN_STRNCPY

#define ASSIGN_STRNCPY (   DEST,
  VALUE 
)    STRNCPY(DEST, VALUE); DEST ## _valid = true

Helper macro when copying a string value into the destination struct member which also has an accompanying "_valid" member which is also set to true.

Definition at line 52 of file ofx_utilities.hh.

Function Documentation

◆ ofxamount_to_double()

double ofxamount_to_double ( const std::string  ofxamount)

Convert OFX amount of money to double float.

Convert a C++ string containing an amount of money as specified by the OFX standard and convert it to a double float.

Note
The ofx number format is the following: "." or "," as decimal separator, NO thousands separator.

Definition at line 130 of file ofx_utilities.cpp.

Referenced by OfxBalanceContainer::add_attribute(), OfxSecurityContainer::add_attribute(), OfxPositionContainer::add_attribute(), OfxBankTransactionContainer::add_attribute(), and OfxInvestmentTransactionContainer::add_attribute().

◆ ofxdate_to_time_t()

time_t ofxdate_to_time_t ( const std::string &  ofxdate)

Convert a C++ string containing a time in OFX format to a C time_t.

Converts a date from the YYYYMMDDHHMMSS.XXX[gmt offset:tz name] OFX format (see OFX 2.01 spec p.66) to a C time_t.

Parameters
ofxdatedate from the YYYYMMDDHHMMSS.XXX[gmt offset:tz name] OFX format
Returns
C time_t in the local time zone
Note
  • The library always returns the time in the system's local time
: DEVIATION FROM THE OFX SPECIFICATION:
  • : Specification permits timestamps with millisecond precision, but the normal C Library time functions support only second precision.
  • : Many banks don't even specify a time, either by providing only an 8-character string (YYYYMMDD) or by presenting 0 for all the time values (i.e. midnight). In those cases we take that to mean that the time isn't significant and set it to a time that is nearly always the same day regardless of timezone: 10:59 UTC. This works in all timezones except -12 and +13.

Definition at line 68 of file ofx_utilities.cpp.

Referenced by OfxBalanceContainer::add_attribute(), OfxStatementContainer::add_attribute(), OfxSecurityContainer::add_attribute(), OfxPositionContainer::add_attribute(), OfxTransactionContainer::add_attribute(), and OfxInvestmentTransactionContainer::add_attribute().

◆ strip_whitespace()

std::string strip_whitespace ( const std::string  para_string)

Sanitize a string coming from OpenSP.

Many weird characters can be present inside a SGML element, as a result on the transfer protocol, or for any reason. This function greatly enhances the reliability of the library by zapping those gremlins (backspace,formfeed,newline,carriage return, horizontal and vertical tabs) as well as removing whitespace at the beginning and end of the string. Otherwise, many problems will occur during stringmatching.

Definition at line 153 of file ofx_utilities.cpp.

Referenced by OFCApplication::endElement(), and OFXApplication::endElement().

◆ STRNCPY()

template<typename T >
void STRNCPY ( T &  dest,
const std::string &  src 
)

Helper function when copying a std::string into a char[] array. The size of the char[] array is deducted by the compiler by the sizeof() operator.

Definition at line 35 of file ofx_utilities.hh.

Referenced by OfxStatementContainer::add_attribute().