00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file UIPMC_Factory.h 00006 * 00007 * UIPMC_Factory.h,v 1.6 2006/03/14 06:14:34 jtc Exp 00008 * 00009 * @author Frank Hunleth <fhunleth@cs.wustl.edu> 00010 */ 00011 //============================================================================= 00012 00013 #ifndef TAO_UIPMC_FACTORY_H 00014 #define TAO_UIPMC_FACTORY_H 00015 00016 #include /**/ "ace/pre.h" 00017 00018 #include "tao/Protocol_Factory.h" 00019 00020 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00021 # pragma once 00022 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00023 00024 #include "ace/Service_Config.h" 00025 00026 #include "orbsvcs/PortableGroup/portablegroup_export.h" 00027 00028 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00029 00030 class TAO_Acceptor; 00031 class TAO_Connector; 00032 00033 class TAO_PortableGroup_Export TAO_UIPMC_Protocol_Factory : public TAO_Protocol_Factory 00034 { 00035 public: 00036 TAO_UIPMC_Protocol_Factory (void); 00037 virtual ~TAO_UIPMC_Protocol_Factory (void); 00038 00039 // = Service Configurator hooks. 00040 /// Dynamic linking hook 00041 virtual int init (int argc, char* argv[]); 00042 00043 /// Verify prefix is a match 00044 virtual int match_prefix (const ACE_CString &prefix); 00045 00046 /// Returns the prefix used by the protocol. 00047 virtual const char *prefix (void) const; 00048 00049 /// Return the character used to mark where an endpoint ends and 00050 /// where its options begin. 00051 virtual char options_delimiter (void) const; 00052 00053 // = Check Protocol_Factory.h for a description of these methods. 00054 virtual TAO_Acceptor *make_acceptor (void); 00055 virtual TAO_Connector *make_connector (void); 00056 virtual int requires_explicit_endpoint (void) const; 00057 00058 private: 00059 /// Changing the version number can be used to provide backwards 00060 /// compatibility with old clients. 00061 int major_; 00062 int minor_; 00063 }; 00064 00065 TAO_END_VERSIONED_NAMESPACE_DECL 00066 00067 ACE_STATIC_SVC_DECLARE (TAO_UIPMC_Protocol_Factory) 00068 ACE_FACTORY_DECLARE (TAO_PortableGroup, TAO_UIPMC_Protocol_Factory) 00069 00070 #include /**/ "ace/post.h" 00071 00072 #endif /* TAO_UIPMC_FACTORY_H */