diff options
Diffstat (limited to 'trunk/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.h')
-rw-r--r-- | trunk/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/trunk/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.h b/trunk/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.h new file mode 100644 index 00000000000..93a1220dc11 --- /dev/null +++ b/trunk/ACE/examples/ASX/UPIPE_Event_Server/Consumer_Router.h @@ -0,0 +1,53 @@ +/* -*- C++ -*- */ +// $Id$ + +// The interface between one or more consumers and an Event Server +// ACE_Stream. + +#ifndef _CONSUMER_ROUTER_H +#define _CONSUMER_ROUTER_H + +#include "ace/Thread_Manager.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "ace/UPIPE_Acceptor.h" +#include "ace/UPIPE_Addr.h" +#include "ace/Svc_Handler.h" +#include "Peer_Router.h" + +#if defined (ACE_HAS_THREADS) + +class Consumer_Handler; // Forward declaration.... + +typedef ACE_HANDLE CONSUMER_KEY; + +typedef Peer_Router<Consumer_Handler, CONSUMER_KEY> CONSUMER_ROUTER; + +class Consumer_Handler + : public Peer_Handler<CONSUMER_ROUTER, CONSUMER_KEY> +{ +public: + Consumer_Handler (ACE_Thread_Manager *tm = 0); + virtual int open (void *); +}; + +class Consumer_Router : public CONSUMER_ROUTER +{ +public: + Consumer_Router (ACE_Thread_Manager *thr_manager); + +protected: + // ACE_Task hooks.. + virtual int open (void *a = 0); + virtual int close (u_long flags = 0); + virtual int put (ACE_Message_Block *msg, ACE_Time_Value * = 0); + virtual int svc (void); + + // Dynamic linking hooks. + virtual int info (ACE_TCHAR **info_string, size_t length) const; +}; +#endif /* ACE_HAS_THREADS */ +#endif /* _CONSUMER_ROUTER_H */ |