diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2006-07-24 15:50:21 +0000 |
commit | 3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c (patch) | |
tree | 197c810e5f5bce17b1233a7cb8d7b50c0bcd25e2 /TAO/tao/Protocol_Factory.h | |
parent | 6b846cf03c0bcbd8c276cb0af61a181e5f98eaae (diff) | |
download | ATCD-3aff90f4a822fcf5d902bbfbcc9fa931d6191a8c.tar.gz |
Repo restructuring
Diffstat (limited to 'TAO/tao/Protocol_Factory.h')
-rw-r--r-- | TAO/tao/Protocol_Factory.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/TAO/tao/Protocol_Factory.h b/TAO/tao/Protocol_Factory.h new file mode 100644 index 00000000000..7e0bcb71b0c --- /dev/null +++ b/TAO/tao/Protocol_Factory.h @@ -0,0 +1,84 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file Protocol_Factory.h + * + * $Id$ + * + * @author Fred Kuhns <fredk@cs.wustl.edu> + */ +//============================================================================= + +#ifndef TAO_PROTOCOL_FACTORY_H +#define TAO_PROTOCOL_FACTORY_H + +#include /**/ "ace/pre.h" + +#include "tao/TAO_Export.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Basic_Types.h" + +#include "ace/Service_Object.h" +#include "ace/SStringfwd.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +class TAO_Acceptor; +class TAO_Connector; + +class TAO_Export TAO_Protocol_Factory : public ACE_Service_Object +{ +public: + TAO_Protocol_Factory (CORBA::ULong tag); + virtual ~TAO_Protocol_Factory (void); + + /// Initialization hook. + virtual int init (int argc, ACE_TCHAR *argv[]); + + /// The protocol tag, each concrete class will have a specific tag + /// value. + CORBA::ULong tag (void) const; + + /// Verify prefix is a match + virtual int match_prefix (const ACE_CString &prefix); + + /// Returns the prefix used by the protocol. + virtual const char *prefix (void) const; + + /// Return the character used to mark where an endpoint ends and + /// where its options begin. + virtual char options_delimiter (void) const; + + // Factory methods + /// Create an acceptor + virtual TAO_Acceptor *make_acceptor (void); + + /// Create a connector + virtual TAO_Connector *make_connector (void); + + /** + * Some protocols should not create a default endpoint unless the + * user specifies a -ORBEndpoint option. For example, local IPC + * (aka UNIX domain sockets) is unable to remove the rendesvouz + * point if the server crashes. For those protocols it is better to + * create the endpoint only if the user requests one. + */ + virtual int requires_explicit_endpoint (void) const = 0; + +private: + + /// IOP protocol tag. + CORBA::ULong const tag_; + +}; + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_PROTOCOL_FACTORY_H */ |