summaryrefslogtreecommitdiff
path: root/ace/Svc_Handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/Svc_Handler.h')
-rw-r--r--ace/Svc_Handler.h150
1 files changed, 0 insertions, 150 deletions
diff --git a/ace/Svc_Handler.h b/ace/Svc_Handler.h
deleted file mode 100644
index 89bf2d73d99..00000000000
--- a/ace/Svc_Handler.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// Svc_Handler.h
-//
-// = AUTHOR
-// Doug Schmidt and Irfan Pyrarli.
-//
-// ============================================================================
-
-#if !defined (ACE_SVC_HANDLER_H)
-#define ACE_SVC_HANDLER_H
-
-#include "ace/Synch_Options.h"
-#include "ace/Task.h"
-#include "ace/Service_Config.h"
-#include "ace/Synch_T.h"
-
-// Forward decls.
-class ACE_Dynamic;
-
-template <ACE_PEER_STREAM_1, ACE_SYNCH_1>
-class ACE_Svc_Handler : public ACE_Task<ACE_SYNCH_2>
- // = TITLE
- // Defines the interface for a service that exchanges data with
- // its connected peer.
- //
- // = DESCRIPTION
- // This class provides a well-defined interface that the
- // Acceptor and Connector pattern factories use as their target.
- // Typically, client applications will subclass ACE_Svc_Handler
- // and do all the interesting work in the subclass. One thing
- // that the ACE_Svc_Handler does contain is a PEER_STREAM
- // endpoint that is initialized by an ACE_Acceptor or
- // ACE_Connector when a connection is established successfully.
- // This endpoint is used to exchange data between a
- // ACE_Svc_Handler and the peer it is connected with.
-{
-public:
- // = Initialization and termination methods.
- ACE_Svc_Handler (ACE_Thread_Manager * = 0,
- ACE_Message_Queue<ACE_SYNCH_2> * = 0,
- ACE_Reactor * = ACE_Service_Config::reactor ());
-
- virtual ~ACE_Svc_Handler (void);
-
- virtual int open (void * = 0);
- // Activate the client handler (called by the ACE_Acceptor or
- // ACE_Connector).
-
- virtual int close (u_long flags = 0);
- // Object termination hook.
-
- // = Dynamic linking hooks.
- virtual int init (int argc, char *argv[]);
- // Default version does no work and returns -1. Must be overloaded
- // by application developer to do anything meaningful.
-
- virtual int fini (void);
- // Default version does no work and returns -1. Must be overloaded
- // by application developer to do anything meaningful.
-
- virtual int info (char **info_string, size_t length) const;
- // Default version does no work and returns -1. Must be overloaded
- // by application developer to do anything meaningful.
-
- // = Demultiplexing hooks.
-
- virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE,
- ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK);
- // Perform termination activities on the SVC_HANDLER. The default
- // behavior is to close down the <peer_> (to avoid descriptor leaks)
- // and to delete this (to avoid memory leaks)! If you don't want
- // this behavior make sure you override this method...
-
- virtual int handle_timeout (const ACE_Time_Value &time,
- const void *);
- // Default behavior when timeouts occur is to close down the
- // <Svc_Handler> by calling <handle_close>.
-
- virtual ACE_HANDLE get_handle (void) const;
- // Get the underlying handle associated with the <peer_>.
-
- virtual void set_handle (ACE_HANDLE);
- // Set the underlying handle associated with the <peer_>.
-
- ACE_PEER_STREAM &peer (void) const;
- // Returns the underlying PEER_STREAM
-
- // operator ACE_PEER_STREAM &();
- // Returns the underlying PEER_STREAM (used by
- // ACE_Acceptor::accept() and ACE_Connector::connect() factories).
-
- virtual void destroy (void);
- // Call this instead of <delete> to free up dynamically allocated
- // <Svc_Handler>. This method knows whether or not the object was
- // allocated dynamically, and can act accordingly (i.e., deleting it
- // if it was allocated dynamically, otherwise ignoring it).
-
- void *operator new (size_t n);
- // Overloaded new operator. This is used to unobtrusively detect
- // when a Svc_Handler is allocated dynamically.
-
- void dump (void) const;
- // Dump the state of an object.
-
-public:
-
- void operator delete (void *);
- // This really should be private so that users are forced to call
- // destroy().
-
-private:
- void shutdown (void);
- // Close down the descriptor
-
- ACE_PEER_STREAM peer_;
- // Maintain connection with client.
-
- static ACE_Dynamic *instance (void);
- // Point of access to the singleton.
-
- char dynamic_;
- // Have we been dynamically created?
-
-#if defined (ACE_MT_SAFE) && !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES)
- static ACE_Thread_Mutex ace_svc_handler_lock_;
- // Lock the creation of the Singleton.
-#endif /* defined (ACE_MT_SAFE) && !defined (ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES) */
-};
-
-#if defined (__ACE_INLINE__)
-#include "ace/Svc_Handler.i"
-#endif /* __ACE_INLINE__ */
-
-#if defined (ACE_TEMPLATES_REQUIRE_SOURCE)
-#include "ace/Svc_Handler.cpp"
-#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */
-
-#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA)
-#pragma implementation ("Svc_Handler.cpp")
-#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */
-
-#endif /* ACE_SVC_HANDLER_H */