5 #include "ace/Message_Block.h"
6 #include "ace/Singleton.h"
7 #include "ace/Synch_Traits.h"
9 #include "jaws3/Export.h"
13 class JAWS_Event_Completer
;
16 class JAWS_Export JAWS_IO_Impl
18 // IO inteface for the implementation classes on the RHS of the
22 virtual ~JAWS_IO_Impl () {}
24 // = Regular IO methods.
26 virtual void send ( ACE_HANDLE handle
27 , ACE_Message_Block
*mb
28 , JAWS_Event_Completer
*completer
32 virtual void recv ( ACE_HANDLE handle
33 , ACE_Message_Block
*mb
34 , JAWS_Event_Completer
*completer
38 virtual void transmit ( ACE_HANDLE handle
40 , JAWS_Event_Completer
*completer
42 , ACE_Message_Block
*header
= 0
43 , ACE_Message_Block
*trailer
= 0
46 // = Timed IO methods.
48 virtual void send ( ACE_HANDLE handle
49 , ACE_Message_Block
*mb
50 , JAWS_Event_Completer
*completer
51 , const ACE_Time_Value
&tv
55 virtual void recv ( ACE_HANDLE handle
56 , ACE_Message_Block
*mb
57 , JAWS_Event_Completer
*completer
58 , const ACE_Time_Value
&tv
62 virtual void transmit ( ACE_HANDLE handle
64 , JAWS_Event_Completer
*completer
65 , const ACE_Time_Value
&tv
67 , ACE_Message_Block
*header
= 0
68 , ACE_Message_Block
*trailer
= 0
73 class JAWS_Export JAWS_IO
76 JAWS_IO (JAWS_IO_Impl
*impl
= 0);
80 static JAWS_IO
* instance ()
82 return ACE_Singleton
<JAWS_IO
, ACE_SYNCH_MUTEX
>::instance ();
85 void send ( ACE_HANDLE handle
86 , ACE_Message_Block
*mb
87 , JAWS_Event_Completer
*completer
91 void recv ( ACE_HANDLE handle
92 , ACE_Message_Block
*mb
93 , JAWS_Event_Completer
*completer
97 void transmit ( ACE_HANDLE handle
99 , JAWS_Event_Completer
*completer
101 , ACE_Message_Block
*header
= 0
102 , ACE_Message_Block
*trailer
= 0
105 void send ( ACE_HANDLE handle
106 , ACE_Message_Block
*mb
107 , JAWS_Event_Completer
*completer
108 , const ACE_Time_Value
&tv
112 void recv ( ACE_HANDLE handle
113 , ACE_Message_Block
*mb
114 , JAWS_Event_Completer
*completer
115 , const ACE_Time_Value
&tv
119 void transmit ( ACE_HANDLE handle
121 , JAWS_Event_Completer
*completer
122 , const ACE_Time_Value
&tv
124 , ACE_Message_Block
*header
= 0
125 , ACE_Message_Block
*trailer
= 0
133 #endif /* JAWS_IO_H */