![]() |
ENSDF++ 1.1
An easy, fast and simple way to run querys towards the ENSDF database, written in C++.
|
00001 #include "VerbosePrinter.h" 00002 00003 VerbosePrinter::VerbosePrinter(int verbosityLevel) 00004 { 00005 myFile = NULL; 00006 myVerbosityLevel = verbosityLevel; 00007 } 00008 00009 VerbosePrinter::VerbosePrinter(int verbosityLevel, string fileName) 00010 { 00011 myVerbosityLevel = verbosityLevel; 00012 myFile = fopen(fileName.c_str(), "w"); 00013 } 00014 00015 VerbosePrinter::~VerbosePrinter() 00016 { 00017 if(myFile!=NULL) 00018 fclose(myFile); 00019 } 00020 00021 bool VerbosePrinter::print(int verbosityLevel, const char* message, ...) 00022 { 00023 va_list args; 00024 va_start(args, message); 00025 bool retval = va_print(verbosityLevel, message, args); 00026 va_end(args); 00027 return retval; 00028 } 00029 00030 bool VerbosePrinter::va_print(int verbosityLevel, const char* message, va_list args) 00031 { 00032 if(verbosityLevel<=myVerbosityLevel) 00033 { 00034 if(myFile!=NULL) 00035 { 00036 vfprintf( myFile, message, args ); 00037 } 00038 else 00039 { 00040 vprintf( message, args ); 00041 fflush(stdout); 00042 } 00043 return true; 00044 } 00045 else 00046 { 00047 return false; 00048 } 00049 } 00050 00051 list<VerbosePrinterEventEnabled *> VerbosePrinter::getConnectedEventClasses() 00052 { 00053 return myConnectedEventClasses; 00054 } 00055 00056 bool VerbosePrinter::registerConnectedEventClass(VerbosePrinterEventEnabled * myEvent) 00057 { 00058 if(find(myConnectedEventClasses.begin(), myConnectedEventClasses.end(), 00059 myEvent)==myConnectedEventClasses.end()) 00060 { 00061 myConnectedEventClasses.push_back(myEvent); 00062 return true; 00063 } 00064 else 00065 return false; 00066 } 00067 00068 bool VerbosePrinter::unRegisterConnectedEventClass(VerbosePrinterEventEnabled * myEvent) 00069 { 00070 myConnectedEventClasses.remove(myEvent); 00071 return true; 00072 } 00073 00074 int VerbosePrinter::getVerbosityLevel() const 00075 { 00076 return myVerbosityLevel; 00077 }