13 #ifndef _VT_UNIFY_HOOKS_AEVENTS_H_
14 #define _VT_UNIFY_HOOKS_AEVENTS_H_
17 #include "vt_unify_hooks_base.h"
39 static bool isEnabled() {
return true; }
48 ASYNC_EVENT_TYPE_COUNTER,
50 ASYNC_EVENT_TYPE_UNKNOWN
57 struct AsyncEventBaseS
62 : type(ASYNC_EVENT_TYPE_UNKNOWN), time(0), kvs(0) {}
63 AsyncEventBaseS(
const AsyncEventTypeT & _type,
const uint64_t & _time,
65 : type(_type), time(_time), kvs(_kvs) {}
79 struct AsyncEventCounterS : AsyncEventBaseS
83 const uint32_t & _procgrp,
const uint32_t & _counter,
84 const uint64_t & _value )
85 : AsyncEventBaseS(ASYNC_EVENT_TYPE_COUNTER, _time, _kvs),
86 procgrp(_procgrp), counter(_counter), value(_value) {}
99 struct AsyncSourceManagerS
109 : key(0), finished_reading(
false), file_manager(0), rstream(0),
111 SourceS(
const uint32_t & _key )
112 : key(_key), finished_reading(
false), file_manager(0), rstream(0),
116 static uint32_t MaxQueueSize;
119 bool finished_reading;
123 std::deque<AsyncEventBaseS*> event_queue;
128 AsyncSourceManagerS()
129 : stream_id(0), opened(false), hooks_suspended(false), wstream(0) {}
132 static const uint32_t MAX_QUEUED_EVENTS = 1000000;
135 std::string stream_prefix;
137 bool hooks_suspended;
139 std::map<uint32_t, SourceS> sources;
149 static inline bool HandleAsyncEventPre(
150 AsyncSourceManagerS::SourceS & source,
151 const uint32_t & proc, uint64_t & time,
155 static inline bool HandleAsyncEventPost(
156 AsyncSourceManagerS::SourceS & source,
157 AsyncEventBaseS *& newAsyncEvent );
159 static int HandleAsyncCounter( AsyncSourceManagerS::SourceS * source,
160 uint64_t time, uint32_t proc, uint32_t counter, uint64_t value,
171 void finalizeHook(
const bool & error );
176 void phaseHook_UnifyEvents_pre();
183 void writeRecHook_DefKeyValue( HooksC::VaArgsT & args );
188 void writeRecHook_Event( uint64_t * time, uint32_t * streamid,
191 void writeRecHook_EventComment( HooksC::VaArgsT & args )
193 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
197 void writeRecHook_Enter( HooksC::VaArgsT & args )
199 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[3],
203 void writeRecHook_Leave( HooksC::VaArgsT & args )
205 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[3],
209 void writeRecHook_Counter( HooksC::VaArgsT & args )
211 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
215 void writeRecHook_BeginFileOp( HooksC::VaArgsT & args )
217 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
221 void writeRecHook_EndFileOp( HooksC::VaArgsT & args )
223 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
227 void writeRecHook_SendMsg( HooksC::VaArgsT & args )
229 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
233 void writeRecHook_RecvMsg( HooksC::VaArgsT & args )
235 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
239 void writeRecHook_BeginCollOp( HooksC::VaArgsT & args )
241 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
245 void writeRecHook_EndCollOp( HooksC::VaArgsT & args )
247 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
251 void writeRecHook_RMAPut( HooksC::VaArgsT & args )
253 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
257 void writeRecHook_RMAPutRemoteEnd( HooksC::VaArgsT & args )
259 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
262 void writeRecHook_RMAGet( HooksC::VaArgsT & args )
264 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
268 void writeRecHook_RMAEnd( HooksC::VaArgsT & args )
270 writeRecHook_Event( (uint64_t*)args[1], (uint32_t*)args[2],
275 void genericHook(
const uint32_t &
id, HooksC::VaArgsT & args );
280 bool openSources( AsyncSourceManagerS & manager,
281 const uint32_t & streamId,
const std::string & streamPrefix,
285 bool closeSources( AsyncSourceManagerS & manager );
289 bool readAhead( AsyncSourceManagerS & manager,
290 const uint32_t & sourceKey = 0 );
294 bool writeAsyncEvents( AsyncSourceManagerS & manager,
295 const uint64_t & curTime = (uint64_t)-1 );
298 inline AsyncSourceManagerS *
299 getSourceManagerByStreamId(
const uint32_t & streamId );
305 const uint32_t & sourceKey = 0 )
const;
310 bool shareSourceKeys();
318 std::map<uint32_t, AsyncSourceManagerS> m_stream2SourceManager;
321 std::set<uint32_t> m_sourceKeys;
325 #endif // _VT_UNIFY_HOOKS_AEVENTS_H_
uint8_t OTF_KeyValueList_close(OTF_KeyValueList *list)
Close an OTF_KeyValueList instance.
Definition: OTF_KeyValue.c:61
Main include file for applications using OTF.
Object structure which holds OTF record handlers.
Definition: OTF_HandlerArray.h:52
VampirTrace http://www.tu-dresden.de/zih/vampirtrace.
Definition: vt_unify_hooks_base.h:23
VampirTrace http://www.tu-dresden.de/zih/vampirtrace.
Definition: vt_unify_hooks_aevents.h:28
Definition: OTF_RStream.h:133
Definition: vt_unify_hooks_aevents.h:104
Definition: OTF_WStream.h:95
struct OTF_KeyValueList_struct OTF_KeyValueList
Object type which holds a key-value list.
Definition: OTF_KeyValue.h:242
file handles management structure
Definition: OTF_FileManager.c:32