aboutsummaryrefslogtreecommitdiffstats
path: root/src/messaging/session.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/messaging/session.cpp')
-rw-r--r--src/messaging/session.cpp28
1 files changed, 28 insertions, 0 deletions
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<transport*>(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<store*>(sv);
+}
+
+
const propertySet& session::getProperties() const
{
return (m_props);