Endpoint_Selector_Factory.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file   Endpoint_Selector_Factory.h
00006  *
00007  *  $Id: Endpoint_Selector_Factory.h 79829 2007-10-23 12:39:52Z johnnyw $
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 #ifndef TAO_ENDPOINT_SELECTOR_FACTORY_H
00018 #define TAO_ENDPOINT_SELECTOR_FACTORY_H
00019 
00020 #include /**/ "ace/pre.h"
00021 
00022 #include /**/ "tao/TAO_Export.h"
00023 
00024 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00025 # pragma once
00026 #endif /* ACE_LACKS_PRAGMA_ONCE */
00027 
00028 #include /**/ "tao/Versioned_Namespace.h"
00029 #include "ace/Service_Object.h"
00030 
00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00032 
00033 namespace CORBA
00034 {
00035   class Exception;
00036 }
00037 
00038 class TAO_Invocation_Endpoint_Selector;
00039 
00040 
00041 // ****************************************************************
00042 
00043 /**
00044  * @class TAO_Endpoint_Selector_Factory
00045  *
00046  * @brief Factory for initializing <Endpoint_Selection_State> and
00047  * obtaining appropriate <Invocation_Endpoint_Selector>.
00048  *
00049  * Used by Invocation classes to intialize its endpoint selection
00050  * strategy and state based on the effective policies.
00051  * Endpoint selection strategies are stateless objects - all the
00052  * state they need is contained by Invocation in
00053  * <Endpoint_Selection_State>.  Thus, rather than allocating an
00054  * endpoint selection strategy object for each Invocation, the
00055  * factory simply returns the appropriate one from the
00056  * set preallocated in the ORB_Core.  One endpoint selection
00057  * strategy object can be used by many invocations concurrently.
00058  */
00059 class TAO_Export TAO_Endpoint_Selector_Factory
00060   : public ACE_Service_Object
00061 {
00062 public:
00063   /// Destructor.
00064   virtual ~TAO_Endpoint_Selector_Factory (void);
00065 
00066   /// Get an Invocation's endpoint selection strategy and
00067   /// initialize the endpoint selection state instance.
00068   virtual TAO_Invocation_Endpoint_Selector *get_selector (void) = 0;
00069 };
00070 
00071 TAO_END_VERSIONED_NAMESPACE_DECL
00072 
00073 #include /**/ "ace/post.h"
00074 #endif  /* TAO_ENDPOINT_SELECTOR_FACTORY_H */

Generated on Tue Feb 2 17:37:51 2010 for TAO by  doxygen 1.4.7