projector trace files
[charm.git] / src / conv-perf / traceCore.h
index fb002582fc7182e27af02b761226a001e8addee9..9a3507c277e715f103b900c7debd6d0932ca03d1 100644 (file)
@@ -1,3 +1,4 @@
+
 #ifndef __TRACE_CORE_H__
 #define __TRACE_CORE_H__
 
 /* Prototype Declarations */
 class TraceCore; 
 class TraceLogger; 
-class LogEntry;
-class LogPool;
+class TraceEntry;
 
 /* Class Declarations */
 class TraceCore 
 {
   private:
-       LogPool* logPool;
+       TraceLogger* traceLogger;
 
   public:
        TraceCore(char** argv);
        ~TraceCore();
 
-       void RegisterLanguage(int lID); //TODO temporary
+       //TODO: some of these methods are for temporary use only
+       void RegisterLanguage(int lID); 
        void RegisterLanguage(int lID, char* lName);
        void RegisterEvent(int lID, int eID);
        void LogEvent(int lID, int eID);
@@ -32,10 +33,7 @@ class TraceCore
        void LogEvent(int lID, int eID, int iLen, int* iData, int sLen, char* sData);
 };
 
-//TODO: probably not required at this point. Since we are writing only to file
-class TraceLogger {};
-
-class LogEntry
+class TraceEntry
 {
   public:
        int    languageID;
@@ -48,16 +46,17 @@ class LogEntry
        int    sLen;
        char*  sData;
 
-       LogEntry() {}
-       LogEntry(int lID, int eID, double ts, int el, int* e, 
+       TraceEntry() {}
+       TraceEntry(int lID, int eID, double ts, int el, int* e, 
                         int il, int* i, int sl, char* s): 
                         languageID(lID), eventID(eID), timestamp(ts), 
                         eLen(el), entity(e), iLen(il), iData(i), sLen(sl), sData(s) {}
-       LogEntry(int lID, int eID, double ts,
+       TraceEntry(int lID, int eID, double ts,
                         int il, int* i, int sl, char* s): 
                         languageID(lID), eventID(eID), timestamp(ts), 
                         eLen(0), entity(NULL), iLen(il), iData(i), sLen(sl), sData(s) {}
-       ~LogEntry();
+       TraceEntry(TraceEntry& te);
+       ~TraceEntry();
 
     void *operator new(size_t s) {void*ret=malloc(s);_MEMCHECK(ret);return ret;}
     void *operator new(size_t, void *ptr) { return ptr; }
@@ -69,12 +68,12 @@ class LogEntry
        void write(FILE* fp, int prevLID, int prevSeek, int nextLID, int nextSeek);
 };
 
-class LogPool
+class TraceLogger
 {
   private:
     int poolSize;
     int numEntries;
-    LogEntry *pool;
+    TraceEntry *pool;
        
 #define        MAX_NUM_LANGUAGES  10                   //NOTE: fixed temporarily
 
@@ -84,9 +83,12 @@ class LogPool
     FILE *fptrs[MAX_NUM_LANGUAGES];            // File pointer
     int   binary;
 
+       int lastWriteFlag;              // set when writing log to file at end of program
+       int prevLID, prevSeek;  // for writing logs to file
+
   public:
-    LogPool(char* program, int b);
-    ~LogPool();
+    TraceLogger(char* program, int b);
+    ~TraceLogger();
 
        void RegisterLanguage(int lID, char* ln);