00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file UIOP_Factory.h 00006 * 00007 * $Id: UIOP_Factory.h 84281 2009-01-30 15:01:17Z wotte $ 00008 * 00009 * @author Fred Kuhns <fredk@cs.wustl.edu>Ossama Othman <othman@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_UIOP_FACTORY_H 00015 #define TAO_UIOP_FACTORY_H 00016 00017 #include /**/ "ace/pre.h" 00018 00019 #include "tao/orbconf.h" 00020 00021 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00022 # pragma once 00023 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00024 00025 # if TAO_HAS_UIOP == 1 00026 00027 #include "tao/Protocol_Factory.h" 00028 #include "tao/Strategies/strategies_export.h" 00029 #include "ace/Service_Config.h" 00030 00031 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00032 00033 class TAO_Acceptor; 00034 class TAO_Connector; 00035 00036 class TAO_Strategies_Export TAO_UIOP_Protocol_Factory : public TAO_Protocol_Factory 00037 { 00038 public: 00039 /// Constructor. 00040 TAO_UIOP_Protocol_Factory (void); 00041 00042 /// Destructor. 00043 virtual ~TAO_UIOP_Protocol_Factory (void); 00044 00045 // = Service Configurator hooks. 00046 /// Dynamic linking hook 00047 virtual int init (int argc, ACE_TCHAR* argv[]); 00048 00049 /// Verify prefix is a match 00050 virtual int match_prefix (const ACE_CString &prefix); 00051 00052 /// Returns the prefix used by the protocol. 00053 virtual const char *prefix (void) const; 00054 00055 /// Return the character used to mark where an endpoint ends and 00056 /// where its options begin. 00057 virtual char options_delimiter (void) const; 00058 00059 /** 00060 * @name Protocol factory methods 00061 * 00062 * Check Protocol_Factory.h for a description of these methods. 00063 */ 00064 //@{ 00065 virtual TAO_Acceptor *make_acceptor (void); 00066 virtual TAO_Connector *make_connector (void); 00067 virtual int requires_explicit_endpoint (void) const; 00068 //@} 00069 }; 00070 00071 00072 ACE_STATIC_SVC_DECLARE (TAO_UIOP_Protocol_Factory) 00073 ACE_FACTORY_DECLARE (TAO_Strategies, TAO_UIOP_Protocol_Factory) 00074 00075 TAO_END_VERSIONED_NAMESPACE_DECL 00076 00077 # endif /* TAO_HAS_UIOP == 1 */ 00078 00079 #include /**/ "ace/post.h" 00080 00081 #endif /* TAO_UIOP_FACTORY_H */