diff options
Diffstat (limited to 'ACE/examples/APG/Streams/RecordingDevice_Text.h')
-rw-r--r-- | ACE/examples/APG/Streams/RecordingDevice_Text.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/ACE/examples/APG/Streams/RecordingDevice_Text.h b/ACE/examples/APG/Streams/RecordingDevice_Text.h new file mode 100644 index 00000000000..a49f400d922 --- /dev/null +++ b/ACE/examples/APG/Streams/RecordingDevice_Text.h @@ -0,0 +1,84 @@ +/* -*- C++ -*- */ +/* + * $Id$ + * + * A RecordingDevice that listens to a socket and collects text. + */ + +#ifndef RECORDING_DEVICE_TEXT_H +#define RECORDING_DEVICE_TEXT_H + +#include "ace/FILE_IO.h" +#include "ace/FILE_Connector.h" +#include "ace/SOCK_Stream.h" +#include "ace/SOCK_Acceptor.h" + +#include "CommandStream.h" +#include "MessageInfo.h" +#include "RecordingDevice.h" + +class TextListenerAcceptor : + public ACE_Event_Handler, + public RecordingDevice +{ +public: + TextListenerAcceptor (); + + // ACE_Event_Handler interface + + int open (ACE_INET_Addr &addr); + + ACE_HANDLE get_handle (void) const; + + int handle_input (ACE_HANDLE); + + int accept (ACE_SOCK_Stream &peer); + + // RecordingDevice interface + + // Open a listening socket on the port specified by argv. + int init (int argc, ACE_TCHAR *argv[]); + + ACE_Event_Handler *get_handler (void) const; + + virtual RecordingDevice *wait_for_activity (void); + + virtual int answer_call (void); + + virtual CallerId *retrieve_callerId (void); + + virtual int play_message (ACE_FILE_Addr &addr); + + virtual MessageType *record_message (ACE_FILE_Addr &addr); + +private: + ACE_SOCK_Acceptor acceptor_; +}; + +// Listing 01 code/ch18 +class TextListener : public RecordingDevice +{ +public: + TextListener (TextListenerAcceptor *acceptor); + + virtual const ACE_TCHAR *get_name (void) const; + + int answer_call (void); + + CallerId *retrieve_callerId (void); + + int play_message (ACE_FILE_Addr &addr); + + MessageType *record_message (ACE_FILE_Addr &addr); + + virtual void release (void); + // Listing 01 + // Listing 02 code/ch18 +private: + CommandStream *command_stream_; + TextListenerAcceptor *acceptor_; + ACE_SOCK_Stream peer_; +}; +// Listing 02 + +#endif /* RECORDING_DEVICE_TEXT_H */ |