00001 // $Id: HTTPS_SessionFactory.h 91118 2010-07-17 10:29:57Z mcorino $ 00002 00003 /** 00004 * @file HTTPS_SessionFactory.h 00005 * 00006 * @author Martin Corino <mcorino@remedy.nl> 00007 */ 00008 00009 #ifndef ACE_HTTPS_SESSION_FACTORY_H 00010 #define ACE_HTTPS_SESSION_FACTORY_H 00011 00012 #include /**/ "ace/pre.h" 00013 00014 #include /**/ "ace/config-all.h" 00015 00016 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00017 # pragma once 00018 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00019 00020 #include "ace/INet/HTTP_ClientRequestHandler.h" 00021 #include "ace/INet/HTTPS_Session.h" 00022 00023 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00024 00025 namespace ACE 00026 { 00027 namespace HTTPS 00028 { 00029 /** 00030 * @class ACE_HTTPS_SessionFactory_Impl 00031 * 00032 * @brief Implements HTTPS session factory. 00033 * 00034 */ 00035 class ACE_INET_Export SessionFactory_Impl 00036 : public ACE::HTTP::SessionFactory 00037 { 00038 private: 00039 SessionFactory_Impl (); 00040 virtual ~SessionFactory_Impl (); 00041 00042 friend class ACE_Singleton<SessionFactory_Impl, ACE_SYNCH::NULL_MUTEX>; 00043 00044 static SessionFactory_Impl& factory_; 00045 00046 class SessionHolder_Impl : public ACE::HTTP::SessionHolder 00047 { 00048 public: 00049 SessionHolder_Impl (); 00050 virtual ~SessionHolder_Impl(); 00051 00052 protected: 00053 virtual ACE::HTTP::SessionBase& session (); 00054 00055 private: 00056 Session_T<ACE_SYNCH> session_; 00057 }; 00058 00059 public: 00060 virtual ACE::INet::ConnectionHolder* create_connection ( 00061 const ACE::INet::ConnectionKey& key) const; 00062 }; 00063 00064 } 00065 } 00066 00067 ACE_END_VERSIONED_NAMESPACE_DECL 00068 00069 #include /**/ "ace/post.h" 00070 #endif /* ACE_HTTPS_SESSION_FACTORY_H */