LibOFX
ofx_utilities.cpp File Reference

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

Go to the source code of this file.

Macros

#define DIRSEP   "/"
 

Functions

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...
 
std::string get_tmp_dir ()
 
int mkTempFileName (const char *tmpl, char *buffer, unsigned int size)
 

Detailed Description

Various simple functions for type conversion & al.

Definition in file ofx_utilities.cpp.

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().