diff options
author | Vincent Richard <[email protected]> | 2013-11-21 21:16:57 +0000 |
---|---|---|
committer | Vincent Richard <[email protected]> | 2013-11-21 21:16:57 +0000 |
commit | f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8 (patch) | |
tree | 2bdc90e361a8f6e0a81164cf67afec9f78f9b959 /src/net/session.cpp | |
parent | Per-protocol include files. (diff) | |
download | vmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.tar.gz vmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.zip |
Boost/C++11 shared pointers.
Diffstat (limited to 'src/net/session.cpp')
-rw-r--r-- | src/net/session.cpp | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/src/net/session.cpp b/src/net/session.cpp index a444d000..fcc5dd12 100644 --- a/src/net/session.cpp +++ b/src/net/session.cpp @@ -39,19 +39,20 @@ namespace net { session::session() - : m_tlsProps(vmime::create <tls::TLSProperties>()) + : m_tlsProps(make_shared <tls::TLSProperties>()) { } session::session(const session& sess) - : object(), m_props(sess.m_props), m_tlsProps(vmime::create <tls::TLSProperties>(*sess.m_tlsProps)) + : object(), m_props(sess.m_props), + m_tlsProps(make_shared <tls::TLSProperties>(*sess.m_tlsProps)) { } session::session(const propertySet& props) - : m_props(props), m_tlsProps(vmime::create <tls::TLSProperties>()) + : m_props(props), m_tlsProps(make_shared <tls::TLSProperties>()) { } @@ -61,67 +62,67 @@ session::~session() } -ref <transport> session::getTransport(ref <security::authenticator> auth) +shared_ptr <transport> session::getTransport(shared_ptr <security::authenticator> auth) { return (getTransport(m_props["transport.protocol"], auth)); } -ref <transport> session::getTransport - (const string& protocol, ref <security::authenticator> auth) +shared_ptr <transport> session::getTransport + (const string& protocol, shared_ptr <security::authenticator> auth) { - ref <session> sess = thisRef().dynamicCast <session>(); - ref <service> sv = serviceFactory::getInstance()->create(sess, protocol, auth); + shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); + shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, protocol, auth); if (sv->getType() != service::TYPE_TRANSPORT) throw exceptions::no_service_available(); - return sv.staticCast <transport>(); + return dynamicCast <transport>(sv); } -ref <transport> session::getTransport - (const utility::url& url, ref <security::authenticator> auth) +shared_ptr <transport> session::getTransport + (const utility::url& url, shared_ptr <security::authenticator> auth) { - ref <session> sess = thisRef().dynamicCast <session>(); - ref <service> sv = serviceFactory::getInstance()->create(sess, url, auth); + shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); + shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, url, auth); if (sv->getType() != service::TYPE_TRANSPORT) throw exceptions::no_service_available(); - return sv.staticCast <transport>(); + return dynamicCast <transport>(sv); } -ref <store> session::getStore(ref <security::authenticator> auth) +shared_ptr <store> session::getStore(shared_ptr <security::authenticator> auth) { return (getStore(m_props["store.protocol"], auth)); } -ref <store> session::getStore - (const string& protocol, ref <security::authenticator> auth) +shared_ptr <store> session::getStore + (const string& protocol, shared_ptr <security::authenticator> auth) { - ref <session> sess = thisRef().dynamicCast <session>(); - ref <service> sv = serviceFactory::getInstance()->create(sess, protocol, auth); + shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); + shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, protocol, auth); if (sv->getType() != service::TYPE_STORE) throw exceptions::no_service_available(); - return sv.staticCast <store>(); + return dynamicCast <store>(sv); } -ref <store> session::getStore - (const utility::url& url, ref <security::authenticator> auth) +shared_ptr <store> session::getStore + (const utility::url& url, shared_ptr <security::authenticator> auth) { - ref <session> sess = thisRef().dynamicCast <session>(); - ref <service> sv = serviceFactory::getInstance()->create(sess, url, auth); + shared_ptr <session> sess(dynamicCast <session>(shared_from_this())); + shared_ptr <service> sv = serviceFactory::getInstance()->create(sess, url, auth); if (sv->getType() != service::TYPE_STORE) throw exceptions::no_service_available(); - return sv.staticCast <store>(); + return dynamicCast <store>(sv); } @@ -137,13 +138,13 @@ propertySet& session::getProperties() } -void session::setTLSProperties(ref <tls::TLSProperties> tlsProps) +void session::setTLSProperties(shared_ptr <tls::TLSProperties> tlsProps) { - m_tlsProps = vmime::create <tls::TLSProperties>(*tlsProps); + m_tlsProps = make_shared <tls::TLSProperties>(*tlsProps); } -ref <tls::TLSProperties> session::getTLSProperties() const +shared_ptr <tls::TLSProperties> session::getTLSProperties() const { return m_tlsProps; } |