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

Client_Strategy_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     Client_Strategy_Factory.h
00006  *
00007  *  $Id: Client_Strategy_Factory.h,v 1.1.1.4 2003/02/21 18:36:44 chad Exp $
00008  *
00009  *  @author  Chris Cleeland <cleeland@cs.wustl.edu>
00010  */
00011 //=============================================================================
00012 
00013 
00014 #ifndef TAO_CLIENT_STRATEGY_FACTORY_H
00015 #define TAO_CLIENT_STRATEGY_FACTORY_H
00016 #include "ace/pre.h"
00017 
00018 #include "ace/Service_Object.h"
00019 
00020 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00021 # pragma once
00022 #endif /* ACE_LACKS_PRAGMA_ONCE */
00023 
00024 #include "TAO_Export.h"
00025 
00026 class ACE_Lock;
00027 class TAO_Transport_Mux_Strategy;
00028 class TAO_Wait_Strategy;
00029 class TAO_Transport;
00030 class TAO_ORB_Core;
00031 class TAO_Connect_Strategy;
00032 
00033 /**
00034  * @class TAO_Client_Strategy_Factory
00035  *
00036  * @brief Abstract factory used by the client to manufacture various
00037  * strategies used on the client-side.
00038  */
00039 class TAO_Export TAO_Client_Strategy_Factory : public ACE_Service_Object
00040 {
00041 public:
00042   // = Intialization and termination methods.
00043   /// Constructor.
00044   TAO_Client_Strategy_Factory (void);
00045 
00046   /// Destructor
00047   virtual ~TAO_Client_Strategy_Factory (void);
00048 
00049   /**
00050    * Create the lock for the forwarding Profile used by the
00051    * <TAO_GIOP_Invocation::location_forward> and the
00052    * <TAO_GIOP_Invocation::start>.
00053    */
00054   virtual ACE_Lock* create_profile_lock (void);
00055 
00056   /// Create the correct client request muxing strategy.
00057   virtual TAO_Transport_Mux_Strategy *create_transport_mux_strategy (TAO_Transport *transport);
00058 
00059   /// Create the correct client <wait_for_reply> strategy.
00060   virtual TAO_Wait_Strategy *create_wait_strategy (TAO_Transport *transport);
00061 
00062   /// Create the correct client <asynch_connect> strategy.
00063   virtual TAO_Connect_Strategy *create_connect_strategy (TAO_ORB_Core *);
00064 
00065   /// Does the client allow any form of callback?
00066   virtual int allow_callback (void);
00067 
00068   /// Create a lock to be used by the TAO_Fault_Tolerant_Service class
00069   /// to generate unique retention ids
00070   virtual ACE_Lock *create_ft_service_retention_id_lock (void);
00071 };
00072 
00073 #include "ace/post.h"
00074 #endif /* TAO_CLIENT_STRATEGY_FACTORY_H */

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