From f5f15e5076b979e1c532bf03a12cda96c42bf0b1 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Sun, 26 Dec 2004 16:46:52 +0000 Subject: Allow creating a service from an URL. --- src/messaging/session.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/messaging/session.cpp') diff --git a/src/messaging/session.cpp b/src/messaging/session.cpp index 76d3c07a..8edfcab4 100644 --- a/src/messaging/session.cpp +++ b/src/messaging/session.cpp @@ -64,6 +64,20 @@ transport* session::getTransport(const string& protocol, authenticator* auth) } +transport* session::getTransport(const messaging::url& url, authenticator* auth) +{ + service* sv = serviceFactory::getInstance()->create(this, url, auth); + + if (sv->getType() != service::TYPE_TRANSPORT) + { + delete (sv); + throw exceptions::no_service_available(); + } + + return static_cast(sv); +} + + store* session::getStore(authenticator* auth) { return (getStore(m_props["store.protocol"], auth)); @@ -84,6 +98,20 @@ store* session::getStore(const string& protocol, authenticator* auth) } +store* session::getStore(const messaging::url& url, authenticator* auth) +{ + service* sv = serviceFactory::getInstance()->create(this, url, auth); + + if (sv->getType() != service::TYPE_STORE) + { + delete (sv); + throw exceptions::no_service_available(); + } + + return static_cast(sv); +} + + const propertySet& session::getProperties() const { return (m_props); -- cgit v1.2.3