Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Default_Endpoint_Selector_Factory.h

Go to the documentation of this file.
00001 // This may look like C, but it's really -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file   Default_Endpoint_Selector_Factory.h
00006  *
00007  *  $Id: Default_Endpoint_Selector_Factory.h,v 1.1.1.2 2003/02/21 18:36:44 chad Exp $
00008  *
00009  * Strategies for selecting profile/endpoint from an IOR for making an
00010  * invocation.
00011  *
00012  *  @author Marina Spivak <marina@cs.wustl.edu>
00013  *  @author Frank Hunleth <fhunleth@cs.wustl.edu>
00014  */
00015 //=============================================================================
00016 
00017 
00018 #ifndef TAO_DEFAULT_ENDPOINT_SELECTOR_FACTORY_H
00019 #define TAO_DEFAULT_ENDPOINT_SELECTOR_FACTORY_H
00020 #include "ace/pre.h"
00021 
00022 #include "tao/Endpoint_Selector_Factory.h"
00023 #include "ace/Service_Config.h"
00024 
00025 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00026 # pragma once
00027 #endif /* ACE_LACKS_PRAGMA_ONCE */
00028 
00029 // Forward references
00030 class TAO_Default_Endpoint_Selector;
00031 
00032 // ****************************************************************
00033 
00034 /**
00035  * @class TAO_Default_Endpoint_Selector_Factory
00036  *
00037  * @brief Factory for initializing <Endpoint_Selection_State> and
00038  * obtaining appropriate <Invocation_Endpoint_Selector>.
00039  *
00040  * Used by Invocation classes to intialize its endpoint selection
00041  * strategy and state based on the effective policies.
00042  * Endpoint selection strategies are stateless objects - all the
00043  * state they need is contained by Invocation in
00044  * <Endpoint_Selection_State>.  Thus, rather than allocating an
00045  * endpoint selection strategy object for each Invocation, the
00046  * factory simply returns the appropriate one from the
00047  * set preallocated in the ORB_Core.  One endpoint selection
00048  * strategy object can be used by many invocations concurrently.
00049  */
00050 class TAO_Export TAO_Default_Endpoint_Selector_Factory
00051   : public TAO_Endpoint_Selector_Factory
00052 {
00053 public:
00054   /// Constructor.
00055   TAO_Default_Endpoint_Selector_Factory (void);
00056 
00057   /// Destructor.
00058   virtual ~TAO_Default_Endpoint_Selector_Factory (void);
00059 
00060   /// Get an Invocation's endpoint selection strategy and
00061   /// initialize the endpoint selection state instance.
00062   virtual TAO_Invocation_Endpoint_Selector *get_selector (
00063                              TAO_GIOP_Invocation *invocation
00064                              ACE_ENV_ARG_DECL);
00065 
00066 protected:
00067   /// The possible endpoint selector strategies that can be
00068   /// returned by this factory
00069 
00070   TAO_Default_Endpoint_Selector *default_endpoint_selector_;
00071 };
00072 
00073 ACE_STATIC_SVC_DECLARE_EXPORT (TAO, TAO_Default_Endpoint_Selector_Factory)
00074 ACE_FACTORY_DECLARE (TAO, TAO_Default_Endpoint_Selector_Factory)
00075 
00076 #include "ace/post.h"
00077 #endif  /* TAO_DEFAULT_ENDPOINT_SELECTOR_FACTORY_H */

Generated on Mon Jun 16 13:48:13 2003 for TAO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002