X-Git-Url: http://sraa.de/git/?a=blobdiff_plain;f=dol%2Fsrc%2Fdol%2Fvisitor%2Fhds%2Flib%2Ffunctional_trace.h;fp=dol%2Fsrc%2Fdol%2Fvisitor%2Fhds%2Flib%2Ffunctional_trace.h;h=f3f0a8b96e68bfbf96a343cdb5006a58d1e00f9e;hb=8c411cf24ed0eb889191aaeafd8fa1e69081df42;hp=0000000000000000000000000000000000000000;hpb=dea7a4fb1ed110d3ce6e6d9255103d724bd66c0e;p=jump.git diff --git a/dol/src/dol/visitor/hds/lib/functional_trace.h b/dol/src/dol/visitor/hds/lib/functional_trace.h new file mode 100644 index 0000000..f3f0a8b --- /dev/null +++ b/dol/src/dol/visitor/hds/lib/functional_trace.h @@ -0,0 +1,57 @@ +#ifndef _FUNCTIONAL_H +#define _FUNCTIONAL_H + +#include "trace.h" + +typedef struct EVENT_ENTRY +{ + char event_type; + int start_line; + int end_line; + int data_num; + char *channel_name; + + EVENT_ENTRY *next; +}EVENT_ENTRY; + +class Process_Trace +{ +private: + char _process_name[NAME_LENGTH]; + EVENT_ENTRY *_head; + EVENT_ENTRY *_tail; + +public: + Process_Trace(const char *process_name); + ~Process_Trace(); + + const char *get_name(); + int add_entry(TRACE_EVENT *trace_event_ptr); + EVENT_ENTRY *get_head_entry(); +}; + +class functional_trace +{ +public: + char trace_file_name[NAME_LENGTH]; + unsigned long event_num; + int file_index; + + list _list_process_trace; + list::iterator _iter_process_trace; + + functional_trace(); + ~functional_trace(); + + void add_event_node(TRACE_EVENT &trace_event); + void create_computation_event(const char *process_name, int start_line, int end_line); + void create_read_event(const char *process_name, int data_num, const char *channel_name); + void create_write_event(const char *process_name, int data_num, const char *channel_name); + int write_to_file(const char *trace_file_name); + Process_Trace *get_process_trace(const char *process_name); + void free_traces(); +}; + +extern functional_trace dol_functional_trace; + +#endif