00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file IIOP_SSL_Acceptor.h 00006 * 00007 * IIOP_SSL_Acceptor.h,v 1.12 2006/03/14 06:14:35 jtc Exp 00008 * 00009 * SSL-aware IIOP specific acceptor processing 00010 * 00011 * @author Ossama Othman <ossama@dre.vanderbilt.edu> 00012 */ 00013 //============================================================================= 00014 00015 00016 #ifndef TAO_IIOP_SSL_ACCEPTOR_H 00017 #define TAO_IIOP_SSL_ACCEPTOR_H 00018 00019 #include /**/ "ace/pre.h" 00020 00021 #include "orbsvcs/SSLIOP/IIOP_SSL_Connection_Handler.h" 00022 00023 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00024 # pragma once 00025 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00026 00027 #include "tao/IIOP_Acceptor.h" 00028 00029 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00030 00031 namespace TAO 00032 { 00033 00034 /** 00035 * @class IIOP_SSL_Acceptor 00036 * 00037 * @brief An SSL aware IIOP acceptor. 00038 * 00039 * The class differs from the non-SSL aware TAO_IIOP_Acceptor class 00040 * since it uses a different a set of Acceptor strategies. In 00041 * particular, it overrides the open_i() method to use the Acceptor 00042 * strategies tailored to use the SSL aware server connection handler. 00043 * See the TAO_IIOP_SSL_Connection_Handler notes for details. 00044 */ 00045 class IIOP_SSL_Acceptor : public TAO_IIOP_Acceptor 00046 { 00047 public: 00048 00049 typedef ACE_Strategy_Acceptor<IIOP_SSL_Connection_Handler, ACE_SOCK_ACCEPTOR> TAO_IIOP_SSL_BASE_ACCEPTOR; 00050 typedef TAO_Creation_Strategy<IIOP_SSL_Connection_Handler> TAO_IIOP_SSL_CREATION_STRATEGY; 00051 typedef TAO_Concurrency_Strategy<IIOP_SSL_Connection_Handler> TAO_IIOP_SSL_CONCURRENCY_STRATEGY; 00052 typedef TAO_Accept_Strategy<IIOP_SSL_Connection_Handler, ACE_SOCK_ACCEPTOR> TAO_IIOP_SSL_ACCEPT_STRATEGY; 00053 00054 /// Constructor. 00055 IIOP_SSL_Acceptor (CORBA::Boolean flag = 0); 00056 00057 /// Destructor. 00058 ~IIOP_SSL_Acceptor (void); 00059 00060 virtual int close (void); 00061 00062 private: 00063 00064 /// The concrete acceptor, as a pointer to it's base class. 00065 TAO_IIOP_SSL_BASE_ACCEPTOR base_acceptor_; 00066 00067 /** 00068 * @name Acceptor Strategies 00069 * 00070 * Server side creation, concurrency and accept strategies. 00071 */ 00072 //@{ 00073 TAO_IIOP_SSL_CREATION_STRATEGY *creation_strategy_; 00074 TAO_IIOP_SSL_CONCURRENCY_STRATEGY *concurrency_strategy_; 00075 TAO_IIOP_SSL_ACCEPT_STRATEGY *accept_strategy_; 00076 //@} 00077 00078 }; 00079 00080 } // End TAO namespace. 00081 00082 TAO_END_VERSIONED_NAMESPACE_DECL 00083 00084 #include /**/ "ace/post.h" 00085 00086 #endif /* TAO_IIOP_SSL_ACCEPTOR_H */