1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
/* -*- c++ -*- */
// $Id: Jaws_IO.h 85419 2009-05-22 10:52:11Z johnnyw $
#ifndef JAWS_IO_H
#define JAWS_IO_H
#include "ace/Message_Block.h"
#include "ace/Singleton.h"
#include "ace/Synch_Traits.h"
#include "jaws3/Export.h"
class JAWS_IO;
class JAWS_Event_Completer;
class JAWS_Export JAWS_IO_Impl
// = TITLE
// IO inteface for the implementation classes on the RHS of the
// Bridge Pattern.
{
public:
virtual ~JAWS_IO_Impl (void) {}
// = Regular IO methods.
virtual void send ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, void *act = 0
) = 0;
virtual void recv ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, void *act = 0
) = 0;
virtual void transmit ( ACE_HANDLE handle
, ACE_HANDLE source
, JAWS_Event_Completer *completer
, void *act = 0
, ACE_Message_Block *header = 0
, ACE_Message_Block *trailer = 0
) = 0;
// = Timed IO methods.
virtual void send ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, const ACE_Time_Value &tv
, void *act = 0
) = 0;
virtual void recv ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, const ACE_Time_Value &tv
, void *act = 0
) = 0;
virtual void transmit ( ACE_HANDLE handle
, ACE_HANDLE source
, JAWS_Event_Completer *completer
, const ACE_Time_Value &tv
, void *act = 0
, ACE_Message_Block *header = 0
, ACE_Message_Block *trailer = 0
) = 0;
};
class JAWS_Export JAWS_IO
{
public:
JAWS_IO (JAWS_IO_Impl *impl = 0);
~JAWS_IO (void);
static JAWS_IO * instance (void)
{
return ACE_Singleton<JAWS_IO, ACE_SYNCH_MUTEX>::instance ();
}
void send ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, void *act = 0
);
void recv ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, void *act = 0
);
void transmit ( ACE_HANDLE handle
, ACE_HANDLE source
, JAWS_Event_Completer *completer
, void *act = 0
, ACE_Message_Block *header = 0
, ACE_Message_Block *trailer = 0
);
void send ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, const ACE_Time_Value &tv
, void *act = 0
);
void recv ( ACE_HANDLE handle
, ACE_Message_Block *mb
, JAWS_Event_Completer *completer
, const ACE_Time_Value &tv
, void *act = 0
);
void transmit ( ACE_HANDLE handle
, ACE_HANDLE source
, JAWS_Event_Completer *completer
, const ACE_Time_Value &tv
, void *act = 0
, ACE_Message_Block *header = 0
, ACE_Message_Block *trailer = 0
);
private:
JAWS_IO_Impl *impl_;
};
#endif /* JAWS_IO_H */
|