/***************************************************************** * Headers *****************************************************************/ #include #include #include #include #include #include "zmemory.h" /***************************************************************** * Using declarations *****************************************************************/ using std::ostringstream; using std::ofstream; using std::string; using std::cout; using std::endl; using std::setw; using std::left; using std::ios; /***************************************************************** * Our output file name, set via: zmemorySetFileName *****************************************************************/ static string zmemoryFileName; /***************************************************************** * Externally Visible Functions *****************************************************************/ void zmemorySetFileName(const char *fileName) { zmemoryFileName = fileName; } void zmemoryProcess( const string &address, const char *which, const char *file, int line ) { ostringstream out; out << address << " " << left << setw(8) << which << " " << file << " " << line; string theOutput = out.str(); bool toStdout = true; if(zmemoryFileName != "") { ofstream outFile(zmemoryFileName.c_str(), ios::out | ios::app); if(!outFile) { cout << "Could not open file: [" << zmemoryFileName << "]" << endl; } else { outFile << theOutput << endl; toStdout = false; } } if(toStdout) cout << theOutput << endl; }