1*1cd03ba3SJeremy Kemp #ifndef LOGGER_HPP 2*1cd03ba3SJeremy Kemp #define LOGGER_HPP 3*1cd03ba3SJeremy Kemp 4*1cd03ba3SJeremy Kemp /* 5*1cd03ba3SJeremy Kemp * ANDROID_LOGGER -- defined only incase of android ndk build 6*1cd03ba3SJeremy Kemp */ 7*1cd03ba3SJeremy Kemp 8*1cd03ba3SJeremy Kemp #include <iostream> 9*1cd03ba3SJeremy Kemp #include <string> 10*1cd03ba3SJeremy Kemp #include <fstream> 11*1cd03ba3SJeremy Kemp #include <xml_writer.h> 12*1cd03ba3SJeremy Kemp #include "common.h" 13*1cd03ba3SJeremy Kemp 14*1cd03ba3SJeremy Kemp #ifdef ANDROID_LOGGER 15*1cd03ba3SJeremy Kemp #include <jni.h> 16*1cd03ba3SJeremy Kemp #endif 17*1cd03ba3SJeremy Kemp 18*1cd03ba3SJeremy Kemp using namespace std; 19*1cd03ba3SJeremy Kemp 20*1cd03ba3SJeremy Kemp class logger 21*1cd03ba3SJeremy Kemp { 22*1cd03ba3SJeremy Kemp public: 23*1cd03ba3SJeremy Kemp bool enableXml; 24*1cd03ba3SJeremy Kemp ofstream xmlFile; 25*1cd03ba3SJeremy Kemp xmlWriter *xw; 26*1cd03ba3SJeremy Kemp 27*1cd03ba3SJeremy Kemp #ifdef ANDROID_LOGGER 28*1cd03ba3SJeremy Kemp JNIEnv *jEnv; 29*1cd03ba3SJeremy Kemp jobject *jObj; 30*1cd03ba3SJeremy Kemp jmethodID printCallback; 31*1cd03ba3SJeremy Kemp #endif 32*1cd03ba3SJeremy Kemp 33*1cd03ba3SJeremy Kemp logger(bool _enableXml=false, string _xmlFileName=""); 34*1cd03ba3SJeremy Kemp ~logger(); 35*1cd03ba3SJeremy Kemp 36*1cd03ba3SJeremy Kemp // Overloaded function to print on stdout/android activity 37*1cd03ba3SJeremy Kemp void print(string str); 38*1cd03ba3SJeremy Kemp void print(double val); 39*1cd03ba3SJeremy Kemp void print(float val); 40*1cd03ba3SJeremy Kemp void print(int val); 41*1cd03ba3SJeremy Kemp void print(unsigned int val); 42*1cd03ba3SJeremy Kemp 43*1cd03ba3SJeremy Kemp // Functions to record metrics into xml file 44*1cd03ba3SJeremy Kemp void xmlOpenTag(string tag); 45*1cd03ba3SJeremy Kemp void xmlAppendAttribs(string key, string value); 46*1cd03ba3SJeremy Kemp void xmlAppendAttribs(string key, uint value); 47*1cd03ba3SJeremy Kemp void xmlSetContent(string value); 48*1cd03ba3SJeremy Kemp void xmlSetContent(float value); 49*1cd03ba3SJeremy Kemp void xmlCloseTag(); 50*1cd03ba3SJeremy Kemp 51*1cd03ba3SJeremy Kemp void xmlRecord(string tag, string value); 52*1cd03ba3SJeremy Kemp void xmlRecord(string tag, float value); 53*1cd03ba3SJeremy Kemp }; 54*1cd03ba3SJeremy Kemp 55*1cd03ba3SJeremy Kemp #endif // LOGGER_HPP 56