Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Page_Reduced_Reader.hh

Go to the documentation of this file.
00001 
00016 // ===================================================================
00017 // Avoid multiple inclusion.
00018 #if !defined (_PAGE_REDUCED_READER_HH)
00019 #define _PAGE_REDUCED_READER_HH
00020 // ===================================================================
00021 
00022 
00023 
00024 // ===================================================================
00025 // INCLUDES
00026 
00027 #include <stdio.h>
00028 #include <stack.h> // For priority_queue, oddly enough.
00029 #include "Per_Task_Page_Reduced_Reader.hh"
00030 #include "Reference_Reader.hh"
00031 // ===================================================================
00032 
00033 
00034 
00035 // ===================================================================
00036 // TYPES
00037 
00040 typedef pair<task_ID_t,
00041        Per_Task_Page_Reduced_Reader*> task_reader_pair_t;
00042 
00053 struct task_reader_greater_s {
00054   bool operator() (const task_reader_pair_t* const x,
00055        const task_reader_pair_t* const y) {
00056     return (x->second->next_cycle_timestamp() >
00057       y->second->next_cycle_timestamp());
00058   }
00059 };
00060 
00063 typedef priority_queue<task_reader_pair_t*,
00064            vector<task_reader_pair_t*>,
00065            task_reader_greater_s> task_reader_pair_queue_t;
00066 // ===================================================================
00067 
00068 
00069 
00070 // ===================================================================
00071 // CLASS DEFINITION
00072 
00081 class Page_Reduced_Reader : public Reference_Reader {
00082 
00083 public: // CONSTRUCTOR & DESTRUCTOR
00084 
00096   Page_Reduced_Reader
00097   (const char* const reference_trace_directory_pathname);
00098 
00105   virtual ~Page_Reduced_Reader ();
00106 
00107 public: // VIRTUAL METHODS
00108 
00121   virtual void read (reference_record_s* const reference_record);
00122 
00123 protected: // DATA
00124 
00134   task_reader_pair_queue_t task_reader_pair_queue;
00135 
00136 }; // class Reference_Reader
00137 // ===================================================================
00138 
00139 
00140 
00141 // ===================================================================
00142 #endif // _PAGE_REDUCED_READER_HH
00143 // ===================================================================

Generated on Fri Jan 31 10:33:34 2003 for Laplace-merge by doxygen1.3-rc2