SvcHandler.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* SvcHandler */
  2. /* Copyright (c) 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,19aug99,aim  changed assert to vxdcomAssert
  7. 01b,07jun99,aim  changed peer to stream
  8. 01a,12may99,aim  created
  9. */
  10. #ifndef __INCSvcHandler_h
  11. #define __INCSvcHandler_h
  12. #include "ReactorTypes.h"
  13. #include "EventHandler.h"
  14. #include "TraceCall.h"
  15. class Reactor;
  16. template <class PEER_STREAM>
  17. class SvcHandler : public EventHandler
  18.     {
  19.   public:
  20.     virtual ~SvcHandler ();
  21.     SvcHandler (Reactor*);
  22.     //SvcHandler (Reactor* = Reactor::instance ());
  23.     virtual int open (void* = 0);
  24.     // Activate the client REACTOR_HANDLEr (called by Acceptor/Connector).
  25.     virtual int close (u_long flags = 0);
  26.     // Object termination hook.
  27.     virtual int handleClose (REACTOR_HANDLE = INVALID_REACTOR_HANDLE,
  28.      REACTOR_EVENT_MASK =
  29.      EventHandler::ALL_EVENTS_MASK);
  30.     // Perform termination activities on the SvcHandler.  The default
  31.     // behavior is to close down the <peer> and to <destroy> this
  32.     // object.  If you don't want this behavior make sure you override
  33.     // this method.
  34.     virtual REACTOR_HANDLE handleGet () const;
  35.     // Get the underlying REACTOR_HANDLE associated with the <peer>.
  36.     
  37.     virtual REACTOR_HANDLE handleSet (REACTOR_HANDLE);
  38.     // Set the underlying REACTOR_HANDLE associated with the <peer>.
  39.     virtual void destroy ();
  40.     // Call this to free up dynamically allocated <SvcHandler>s.
  41.     void shutdown ();
  42.     // Close down the descriptor and unregister from the Reactor
  43.     PEER_STREAM& stream ();
  44.     // Returns the underlying stream.  Used by <Acceptor::accept> and
  45.     // <Connector::connect> factories.
  46.   private:
  47.     int m_closing;
  48.     PEER_STREAM m_stream;
  49.     };
  50. #include <SvcHandler.tcc>
  51. #endif // __INCSvcHandler_h