00001 00014 // ================================================================= 00015 #if !defined (_PER_TASK_WRITER) 00016 #define _PER_TASK_WRITER 00017 // ================================================================= 00018 00019 00020 00021 // ================================================================= 00022 // INCLUDES 00023 00024 #include <zlib.h> 00025 #include "types-and-constants.hh" 00026 // ================================================================= 00027 00028 00029 00030 // ================================================================= 00041 class Per_Task_Writer { 00042 00043 public: 00044 00062 Per_Task_Writer (const char* const output_directory_pathname, 00063 const process_ID_t process_ID, 00064 const task_ID_t task_ID); 00065 00071 ~Per_Task_Writer (); 00072 00090 void append_reference_record 00091 (const reference_record_s* const reference_record, 00092 const canonical_page_ID_t canonical_page_ID, 00093 const timestamp_t virtual_cycle_time, 00094 const timestamp_t virtual_instruction_time, 00095 const timestamp_t virtual_reference_time); 00096 00111 void append_kernel_record 00112 (const kernel_record_s* const kernel_record, 00113 const timestamp_t virtual_cycle_time, 00114 const timestamp_t virtual_instruction_time, 00115 const timestamp_t virtual_reference_time); 00116 00117 protected: // METHODS 00118 00127 void open_output (); 00128 00129 protected: // DATA MEMBERS 00130 00132 char output_pathname[BUFFER_SIZE]; 00133 00136 gzFile output_stream; 00137 00139 timestamp_t previous_cycle_time; 00140 00143 timestamp_t previous_instruction_time; 00144 00147 timestamp_t previous_reference_time; 00148 00150 context_ID_t previous_context_ID; 00151 00153 virtual_page_ID_t previous_virtual_page_ID; 00154 00157 canonical_page_ID_t previous_canonical_page_ID; 00158 00159 }; // SAD_filter 00160 // ================================================================= 00161 00162 00163 00164 // ================================================================= 00165 #endif // _PER_TASK_WRITER 00166 // =================================================================