00001 // -*- C++ -*- 00002 00003 // SCIOP_Factory.h,v 1.8 2006/04/19 11:38:50 jwillemsen Exp 00004 //============================================================================= 00005 /** 00006 * @file SCIOP_Factory.h 00007 * 00008 * @author Jason Cohen, Lockheed Martin ATL <jcohen@atl.lmco.com> 00009 * @author Keith O'Hara, Lockheed Martin ATL 00010 */ 00011 //============================================================================= 00012 00013 00014 #ifndef TAO_SCIOP_FACTORY_H 00015 #define TAO_SCIOP_FACTORY_H 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/orbconf.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #if TAO_HAS_SCIOP == 1 00025 00026 #include "tao/Strategies/strategies_export.h" 00027 #include "ace/Service_Config.h" 00028 #include "tao/Protocol_Factory.h" 00029 00030 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00031 00032 class TAO_Acceptor; 00033 class TAO_Connector; 00034 00035 class TAO_Strategies_Export TAO_SCIOP_Protocol_Factory 00036 : public TAO_Protocol_Factory 00037 { 00038 public: 00039 TAO_SCIOP_Protocol_Factory (void); 00040 virtual ~TAO_SCIOP_Protocol_Factory (void); 00041 00042 // = Service Configurator hooks. 00043 /// Dynamic linking hook 00044 virtual int init (int argc, ACE_TCHAR* argv[]); 00045 00046 /// Verify prefix is a match 00047 virtual int match_prefix (const ACE_CString &prefix); 00048 00049 /// Returns the prefix used by the protocol. 00050 virtual const char *prefix (void) const; 00051 00052 /// Return the character used to mark where an endpoint ends and 00053 /// where its options begin. 00054 virtual char options_delimiter (void) const; 00055 00056 // = Check Protocol_Factory.h for a description of these methods. 00057 virtual TAO_Acceptor *make_acceptor (void); 00058 virtual TAO_Connector *make_connector (void); 00059 virtual int requires_explicit_endpoint (void) const; 00060 00061 private: 00062 /// Changing the version number can be used to provide backwards 00063 /// compatibility with old clients. 00064 int major_; 00065 int minor_; 00066 }; 00067 00068 TAO_END_VERSIONED_NAMESPACE_DECL 00069 00070 ACE_STATIC_SVC_DECLARE_EXPORT (TAO_Strategies, TAO_SCIOP_Protocol_Factory) 00071 ACE_FACTORY_DECLARE (TAO_Strategies, TAO_SCIOP_Protocol_Factory) 00072 00073 00074 #endif /* TAO_HAS_SCIOP == 1 */ 00075 00076 #include /**/ "ace/post.h" 00077 #endif /* TAO_SCIOP_FACTORY_H */