summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorjxh <jxh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-08-02 05:43:28 +0000
committerjxh <jxh@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-08-02 05:43:28 +0000
commit02f306584023543a554c7ba8a7e1d89ae3595e64 (patch)
treea9cc14750bc4b51a6a47e731fabcd3cd3609ea63 /apps
parentbb5d0e292a21dc64a7f3bbd368ff25aed84d2494 (diff)
downloadATCD-02f306584023543a554c7ba8a7e1d89ae3595e64.tar.gz
Make sure handler->task () is advanced before accept () is called
so that the framework will work properly in ASYNCH mode.
Diffstat (limited to 'apps')
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp16
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp
index 3fd60b3552e..8cb4892274a 100644
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp
+++ b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp
@@ -32,6 +32,22 @@ JAWS_Pipeline_Handler::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
}
int
+JAWS_Pipeline_Accept_Task::put (ACE_Message_Block *mb, ACE_Time_Value *tv)
+{
+ JAWS_Data_Block *db = ACE_dynamic_cast (JAWS_Data_Block *, mb);
+
+ JAWS_Pipeline_Handler *task = db->io_handler ()->task ();
+ JAWS_Pipeline_Handler *next
+ = ACE_dynamic_cast (JAWS_Pipeline_Handler *, task->next ());
+
+ db->io_handler ()->task (next);
+
+ int status = this->handle_put (db, tv);
+
+ return status;
+}
+
+int
JAWS_Pipeline_Accept_Task::handle_put (JAWS_Data_Block *data,
ACE_Time_Value *)
{
diff --git a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h
index 564caf6243c..bea10546203 100644
--- a/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h
+++ b/apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h
@@ -22,6 +22,7 @@ public:
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);
};