00001 00019 // =================================================================== 00020 // Avoid multiple inclusion. 00021 #if !defined (_PER_TASK_CONSUMER_HH) 00022 #define _PER_TASK_CONSUMER_HH 00023 // =================================================================== 00024 00025 00026 00027 // =================================================================== 00028 // INCLUDES 00029 00030 #include "Consumer.hh" 00031 // =================================================================== 00032 00033 00034 00035 // =================================================================== 00036 // CLASS DEFINITION 00037 00044 class Per_Task_Consumer : public Consumer { 00045 00046 public: // CONSTRUCTOR 00047 00061 Per_Task_Consumer (Reference_Reader* const reference_reader, 00062 const char* const kernel_pathname, 00063 const char* const output_directory_pathname); 00064 00070 virtual ~Per_Task_Consumer (); 00071 00072 protected: // VIRTUAL METHODS 00073 00075 virtual void initialize () {} 00076 00078 virtual void clean_up () {} 00079 00086 virtual void act_on_reference_record (); 00087 00094 virtual void act_on_kernel_record (); 00095 00104 virtual Task* allocate_new_task (); 00105 00106 protected: // SUPPORT METHODS 00107 00110 void PTC_handle_context_assignment (); 00111 00112 protected: // DATA MEMBERS 00113 00115 char output_directory_pathname[BUFFER_SIZE]; 00116 00117 }; // class Per_Task_Consumer 00118 // =================================================================== 00119 00120 00121 00122 // =================================================================== 00123 #endif // _PER_TASK_CONSUMER_HH 00124 // ===================================================================