00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file DIOP_Factory.h 00006 * 00007 * DIOP_Factory.h,v 1.8 2006/04/19 11:38:50 jwillemsen Exp 00008 * 00009 * @author Michael Kircher 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_DIOP_FACTORY_H 00015 #define TAO_DIOP_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 defined (TAO_HAS_DIOP) && (TAO_HAS_DIOP != 0) 00026 00027 #include "tao/Strategies/strategies_export.h" 00028 #include "tao/Protocol_Factory.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_DIOP_Protocol_Factory 00037 : public TAO_Protocol_Factory 00038 { 00039 public: 00040 /// Constructor. 00041 TAO_DIOP_Protocol_Factory (void); 00042 00043 /// Destructor. 00044 virtual ~TAO_DIOP_Protocol_Factory (void); 00045 00046 // = Service Configurator hooks. 00047 /// Dynamic linking hook 00048 virtual int init (int argc, ACE_TCHAR* argv[]); 00049 00050 /// Verify prefix is a match 00051 virtual int match_prefix (const ACE_CString &prefix); 00052 00053 /// Returns the prefix used by the protocol. 00054 virtual const char *prefix (void) const; 00055 00056 /// Return the character used to mark where an endpoint ends and 00057 /// where its options begin. 00058 virtual char options_delimiter (void) const; 00059 00060 /** 00061 * @name Protocol factory methods 00062 * 00063 * Check Protocol_Factory.h for a description of these methods. 00064 */ 00065 //@{ 00066 virtual TAO_Acceptor *make_acceptor (void); 00067 virtual TAO_Connector *make_connector (void); 00068 virtual int requires_explicit_endpoint (void) const; 00069 //@} 00070 00071 private: 00072 /// Changing the version number can be used to provide backwards 00073 /// compatibility with old clients. 00074 int major_; 00075 int minor_; 00076 }; 00077 00078 TAO_END_VERSIONED_NAMESPACE_DECL 00079 00080 ACE_STATIC_SVC_DECLARE (TAO_DIOP_Protocol_Factory) 00081 ACE_FACTORY_DECLARE (TAO_Strategies, TAO_DIOP_Protocol_Factory) 00082 00083 #endif /* TAO_HAS_DIOP && TAO_HAS_DIOP != 0 */ 00084 00085 #include /**/ "ace/post.h" 00086 00087 #endif /* TAO_DIOP_FACTORY_H */