diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:30 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:30 +0000 |
commit | c44379cc7d9c7aa113989237ab0f56db12aa5219 (patch) | |
tree | 66a84b20d47f2269d8bdc6e0323f338763424d3a /ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h | |
parent | 3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c (diff) | |
download | ATCD-c44379cc7d9c7aa113989237ab0f56db12aa5219.tar.gz |
Repo restructuring
Diffstat (limited to 'ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h')
-rw-r--r-- | ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h new file mode 100644 index 00000000000..994a70009c0 --- /dev/null +++ b/ACE/examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h @@ -0,0 +1,73 @@ +/* -*- C++ -*- */ +// $Id$ + +#ifndef _HANDLE_THR_STREAM_H +#define _HANDLE_THR_STREAM_H + +#include "ace/Acceptor.h" +#include "ace/Svc_Handler.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/Service_Types.h" + +#if defined (ACE_HAS_THREADS) + +template <class SVC_HANDLER, ACE_PEER_ACCEPTOR_1> +class Handle_Thr_Acceptor : public ACE_Strategy_Acceptor<SVC_HANDLER, ACE_PEER_ACCEPTOR_2> + // = TITLE + // This factory creates new <SVC_HANDLERS> and runs them with the + // configured <ACE_Thread_Strategy>. +{ +public: + // = Initialization and termination. + Handle_Thr_Acceptor (void); + ~Handle_Thr_Acceptor (void); + + // = Dynamic linking hooks. + virtual int init (int argc, ACE_TCHAR *argv[]); + virtual int info (ACE_TCHAR **, size_t) const; + virtual int fini (void); + +private: + ACE_Thread_Manager thr_mgr_; + // Thread manager. + + ACE_Thread_Strategy<SVC_HANDLER> thr_strategy_; + // Threading strategy. + + int thr_flags_; + // Threading flags. +}; + +template <ACE_PEER_STREAM_1> +class CLI_Stream : public ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_MT_SYNCH> + // = TITLE + // This class interacts with the client, running in a separate + // thread and handles connections from remote TCP/IP connections. +{ +public: + CLI_Stream (ACE_Thread_Manager * = 0); + + virtual int open (void *); + // Open the service. + + virtual int close (u_long); + // Close down the service. + + virtual int svc (void); + // Execute the service. + +protected: + typedef ACE_Svc_Handler<ACE_PEER_STREAM_2, ACE_MT_SYNCH> inherited; +}; + +extern ACE_Service_Object_Type rts; + +#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) +#include "Handle_Thr_Stream.cpp" +#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ +#endif /* ACE_HAS_THREADS */ +#endif /* _HANDLE_THR_STREAM_H */ |