00001 // -*- C++ -*- 00002 00003 // UIOP_Lite_Factory.h,v 1.9 2006/04/19 11:38:50 jwillemsen Exp 00004 // ============================================================================ 00005 // 00006 // = LIBRARY 00007 // TAO 00008 // 00009 // = FILENAME 00010 // UIOP_Factory.h 00011 // 00012 // = AUTHOR 00013 // Fred Kuhns <fredk@cs.wustl.edu> 00014 // Ossama Othman <othman@cs.wustl.edu> 00015 // 00016 // ============================================================================ 00017 00018 #ifndef TAO_UIOP_LITE_FACTORY_H 00019 #define TAO_UIOP_LITE_FACTORY_H 00020 00021 #include /**/ "ace/pre.h" 00022 00023 #include "tao/orbconf.h" 00024 00025 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00026 # pragma once 00027 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00028 00029 # if TAO_HAS_UIOP == 1 00030 00031 #include "ace/Service_Config.h" 00032 #include "tao/Strategies/strategies_export.h" 00033 #include "tao/Protocol_Factory.h" 00034 00035 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00036 00037 class TAO_Acceptor; 00038 class TAO_Connector; 00039 00040 class TAO_Strategies_Export TAO_UIOP_Lite_Protocol_Factory : 00041 public TAO_Protocol_Factory 00042 { 00043 public: 00044 /// Constructor. 00045 TAO_UIOP_Lite_Protocol_Factory (void); 00046 00047 /// Destructor. 00048 virtual ~TAO_UIOP_Lite_Protocol_Factory (void); 00049 00050 // = Service Configurator hooks. 00051 /// Dynamic linking hook 00052 virtual int init (int argc, ACE_TCHAR* argv[]); 00053 00054 /// Verify prefix is a match 00055 virtual int match_prefix (const ACE_CString &prefix); 00056 00057 /// Returns the prefix used by the protocol. 00058 virtual const char *prefix (void) const; 00059 00060 /// Return the character used to mark where an endpoint ends and 00061 /// where its options begin. 00062 virtual char options_delimiter (void) const; 00063 00064 /** 00065 * @name Protocol factory methods Methods 00066 * 00067 * Please check the documentation in Protocol_Factory.h for details. 00068 */ 00069 //@{ 00070 virtual TAO_Acceptor *make_acceptor (void); 00071 virtual TAO_Connector *make_connector (void); 00072 virtual int requires_explicit_endpoint (void) const; 00073 //@} 00074 00075 private: 00076 int major_; 00077 int minor_; 00078 // Changing the version number can be used to provide backwards 00079 // compatibility with old clients. 00080 00081 }; 00082 00083 TAO_END_VERSIONED_NAMESPACE_DECL 00084 00085 ACE_STATIC_SVC_DECLARE (TAO_UIOP_Lite_Protocol_Factory) 00086 ACE_FACTORY_DECLARE (TAO_Strategies, TAO_UIOP_Lite_Protocol_Factory) 00087 00088 # endif /* TAO_HAS_UIOP == 1 */ 00089 00090 #include /**/ "ace/post.h" 00091 00092 #endif /* TAO_UIOP_LITE_FACTORY_H */