diff options
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.h')
-rw-r--r-- | TAO/orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/TAO/orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.h b/TAO/orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.h new file mode 100644 index 00000000000..951e2ab73be --- /dev/null +++ b/TAO/orbsvcs/orbsvcs/SSLIOP/IIOP_SSL_Acceptor.h @@ -0,0 +1,86 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file IIOP_SSL_Acceptor.h + * + * $Id$ + * + * SSL-aware IIOP specific acceptor processing + * + * @author Ossama Othman <ossama@dre.vanderbilt.edu> + */ +//============================================================================= + + +#ifndef TAO_IIOP_SSL_ACCEPTOR_H +#define TAO_IIOP_SSL_ACCEPTOR_H + +#include /**/ "ace/pre.h" + +#include "orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/IIOP_Acceptor.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace TAO +{ + + /** + * @class IIOP_SSL_Acceptor + * + * @brief An SSL aware IIOP acceptor. + * + * The class differs from the non-SSL aware TAO_IIOP_Acceptor class + * since it uses a different a set of Acceptor strategies. In + * particular, it overrides the open_i() method to use the Acceptor + * strategies tailored to use the SSL aware server connection handler. + * See the TAO_IIOP_SSL_Connection_Handler notes for details. + */ + class IIOP_SSL_Acceptor : public TAO_IIOP_Acceptor + { + public: + + typedef ACE_Strategy_Acceptor<IIOP_SSL_Connection_Handler, ACE_SOCK_ACCEPTOR> TAO_IIOP_SSL_BASE_ACCEPTOR; + typedef TAO_Creation_Strategy<IIOP_SSL_Connection_Handler> TAO_IIOP_SSL_CREATION_STRATEGY; + typedef TAO_Concurrency_Strategy<IIOP_SSL_Connection_Handler> TAO_IIOP_SSL_CONCURRENCY_STRATEGY; + typedef TAO_Accept_Strategy<IIOP_SSL_Connection_Handler, ACE_SOCK_ACCEPTOR> TAO_IIOP_SSL_ACCEPT_STRATEGY; + + /// Constructor. + IIOP_SSL_Acceptor (CORBA::Boolean flag = 0); + + /// Destructor. + ~IIOP_SSL_Acceptor (void); + + virtual int close (void); + + private: + + /// The concrete acceptor, as a pointer to it's base class. + TAO_IIOP_SSL_BASE_ACCEPTOR base_acceptor_; + + /** + * @name Acceptor Strategies + * + * Server side creation, concurrency and accept strategies. + */ + //@{ + TAO_IIOP_SSL_CREATION_STRATEGY *creation_strategy_; + TAO_IIOP_SSL_CONCURRENCY_STRATEGY *concurrency_strategy_; + TAO_IIOP_SSL_ACCEPT_STRATEGY *accept_strategy_; + //@} + + }; + +} // End TAO namespace. + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_IIOP_SSL_ACCEPTOR_H */ |