summaryrefslogtreecommitdiff
path: root/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h')
-rw-r--r--ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h b/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h
new file mode 100644
index 00000000000..3bbb5080593
--- /dev/null
+++ b/ACE/apps/JAWS2/JAWS/Pipeline_Tasks.h
@@ -0,0 +1,56 @@
+/* -*- c++ -*- */
+// $Id$
+
+#ifndef JAWS_PIPELINE_TASKS_H
+#define JAWS_PIPELINE_TASKS_H
+
+#include "ace/Singleton.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "JAWS/Export.h"
+#include "JAWS/Pipeline.h"
+#include "JAWS/Pipeline_Handler_T.h"
+#include "JAWS/Data_Block.h"
+
+class JAWS_Export JAWS_Pipeline_Handler
+ : public JAWS_Pipeline_Abstract_Handler<JAWS_Data_Block>
+{
+public:
+ JAWS_Pipeline_Handler (void);
+ virtual ~JAWS_Pipeline_Handler (void);
+ virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
+ virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv) = 0;
+
+ virtual JAWS_Dispatch_Policy * policy (void);
+ virtual void policy (JAWS_Dispatch_Policy *);
+
+private:
+ JAWS_Dispatch_Policy *policy_;
+};
+
+class JAWS_Pipeline_Accept_Task : public JAWS_Pipeline_Handler
+{
+public:
+ virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
+ virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
+
+ virtual JAWS_IO_Handler * new_handler (JAWS_Data_Block *data);
+};
+
+class JAWS_Pipeline_Done_Task : public JAWS_Pipeline_Handler
+{
+public:
+ virtual int put (ACE_Message_Block *mb, ACE_Time_Value *tv = 0);
+ virtual int handle_put (JAWS_Data_Block *data, ACE_Time_Value *tv);
+};
+
+typedef ACE_Singleton<JAWS_Pipeline_Accept_Task, ACE_SYNCH_MUTEX>
+ JAWS_Pipeline_Accept_Task_Singleton;
+
+typedef ACE_Singleton<JAWS_Pipeline_Done_Task, ACE_SYNCH_NULL_MUTEX>
+ JAWS_Pipeline_Done_Task_Singleton;
+
+#endif /* !defined (JAWS_PIPELINE_TASKS_H) */