aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/exception.cpp14
-rw-r--r--src/net/serviceFactory.cpp2
-rw-r--r--src/net/session.cpp16
3 files changed, 9 insertions, 23 deletions
diff --git a/src/exception.cpp b/src/exception.cpp
index bf37de00..3ea6e25a 100644
--- a/src/exception.cpp
+++ b/src/exception.cpp
@@ -429,20 +429,6 @@ const char* unsupported_option::name() const throw() { return "unsupported_optio
//
-// no_service_available
-//
-
-no_service_available::~no_service_available() throw() {}
-no_service_available::no_service_available(const string& proto, const exception& other)
- : net_exception(proto.empty()
- ? "No service available for this protocol."
- : "No service available for this protocol: '" + proto + "'.", other) {}
-
-exception* no_service_available::clone() const { return new no_service_available(*this); }
-const char* no_service_available::name() const throw() { return "no_service_available"; }
-
-
-//
// illegal_state
//
diff --git a/src/net/serviceFactory.cpp b/src/net/serviceFactory.cpp
index a16098ce..98aee646 100644
--- a/src/net/serviceFactory.cpp
+++ b/src/net/serviceFactory.cpp
@@ -101,7 +101,7 @@ shared_ptr <const serviceFactory::registeredService> serviceFactory::getServiceB
return (*it);
}
- throw exceptions::no_service_available(name);
+ return null;
}
diff --git a/src/net/session.cpp b/src/net/session.cpp
index fcc5dd12..36b9f2c3 100644
--- a/src/net/session.cpp
+++ b/src/net/session.cpp
@@ -74,8 +74,8 @@ shared_ptr <transport> session::getTransport
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();
+ if (!sv || sv->getType() != service::TYPE_TRANSPORT)
+ return null;
return dynamicCast <transport>(sv);
}
@@ -87,8 +87,8 @@ shared_ptr <transport> session::getTransport
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();
+ if (!sv || sv->getType() != service::TYPE_TRANSPORT)
+ return null;
return dynamicCast <transport>(sv);
}
@@ -106,8 +106,8 @@ shared_ptr <store> session::getStore
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();
+ if (!sv || sv->getType() != service::TYPE_STORE)
+ return null;
return dynamicCast <store>(sv);
}
@@ -119,8 +119,8 @@ shared_ptr <store> session::getStore
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();
+ if (!sv || sv->getType() != service::TYPE_STORE)
+ return null;
return dynamicCast <store>(sv);
}