2 #ifndef JAWS_PIPELINE_TASKS_H
3 #define JAWS_PIPELINE_TASKS_H
5 #include "ace/Singleton.h"
7 #if !defined (ACE_LACKS_PRAGMA_ONCE)
9 #endif /* ACE_LACKS_PRAGMA_ONCE */
11 #include "JAWS/Export.h"
12 #include "JAWS/Pipeline.h"
13 #include "JAWS/Pipeline_Handler_T.h"
14 #include "JAWS/Data_Block.h"
16 class JAWS_Export JAWS_Pipeline_Handler
17 : public JAWS_Pipeline_Abstract_Handler
<JAWS_Data_Block
>
20 JAWS_Pipeline_Handler ();
21 virtual ~JAWS_Pipeline_Handler ();
22 virtual int put (ACE_Message_Block
*mb
, ACE_Time_Value
*tv
= 0);
23 virtual int handle_put (JAWS_Data_Block
*data
, ACE_Time_Value
*tv
) = 0;
25 virtual JAWS_Dispatch_Policy
* policy ();
26 virtual void policy (JAWS_Dispatch_Policy
*);
29 JAWS_Dispatch_Policy
*policy_
;
32 class JAWS_Pipeline_Accept_Task
: public JAWS_Pipeline_Handler
35 virtual int put (ACE_Message_Block
*mb
, ACE_Time_Value
*tv
= 0);
36 virtual int handle_put (JAWS_Data_Block
*data
, ACE_Time_Value
*tv
);
38 virtual JAWS_IO_Handler
* new_handler (JAWS_Data_Block
*data
);
41 class JAWS_Pipeline_Done_Task
: public JAWS_Pipeline_Handler
44 virtual int put (ACE_Message_Block
*mb
, ACE_Time_Value
*tv
= 0);
45 virtual int handle_put (JAWS_Data_Block
*data
, ACE_Time_Value
*tv
);
48 typedef ACE_Singleton
<JAWS_Pipeline_Accept_Task
, ACE_SYNCH_MUTEX
>
49 JAWS_Pipeline_Accept_Task_Singleton
;
51 typedef ACE_Singleton
<JAWS_Pipeline_Done_Task
, ACE_SYNCH_NULL_MUTEX
>
52 JAWS_Pipeline_Done_Task_Singleton
;
54 #endif /* !defined (JAWS_PIPELINE_TASKS_H) */