xref: /aosp_15_r20/external/clpeak/include/logger.h (revision 1cd03ba3888297bc945f2c84574e105e3ced3e34)
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