add API to pass application annotation time to tracing framework
[charm.git] / src / ck-perf / trace.h
index 6d8e5d4b4e65f1e04d7a3ce152c0a43a1d4c3952..8f6ba0d2331da99ec519c2ddec8b4a83197b4853 100644 (file)
@@ -77,6 +77,8 @@ protected:
     virtual void userEvent(int eventID) {}
     // a pair of begin/end user event has just occured
     virtual void userBracketEvent(int eventID, double bt, double et) {}
+    //interact with application 
+    virtual void appWork(int eventID, double bt, double et) {}
 
     // a user supplied integer value(likely a timestep)
     virtual void userSuppliedData(int e) {}
@@ -205,6 +207,7 @@ public:
 
     inline void userEvent(int e) { ALLDO(userEvent(e));}
     inline void userBracketEvent(int e,double bt, double et) {ALLDO(userBracketEvent(e,bt,et));}
+    inline void appWork(int e,double bt, double et) {ALLDO(appWork(e,bt,et));}
     
        inline void userSuppliedData(int d) { ALLDO(userSuppliedData(d));}
 
@@ -314,6 +317,7 @@ extern "C" {
 
 #define _TRACE_USER_EVENT(x) _TRACE_ONLY(CkpvAccess(_traces)->userEvent(x))
 #define _TRACE_USER_EVENT_BRACKET(x,bt,et) _TRACE_ONLY(CkpvAccess(_traces)->userBracketEvent(x,bt,et))
+#define _TRACE_APPWORK(x,bt,et) _TRACE_ONLY(CkpvAccess(_traces)->appWork(x,bt,et))
 #define _TRACE_CREATION_1(env) _TRACE_ONLY(CkpvAccess(_traces)->creation(env,env->getEpIdx()))
 #define _TRACE_CREATION_DETAILED(env,ep) _TRACE_ONLY(CkpvAccess(_traces)->creation(env,ep))
 #define _TRACE_CREATION_N(env, num) _TRACE_ONLY(CkpvAccess(_traces)->creation(env, env->getEpIdx(), num))