aboutsummaryrefslogtreecommitdiff
path: root/src/support/error/error_capacitor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/support/error/error_capacitor.cc')
-rw-r--r--src/support/error/error_capacitor.cc18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/support/error/error_capacitor.cc b/src/support/error/error_capacitor.cc
index 58cfb81..cc7dd01 100644
--- a/src/support/error/error_capacitor.cc
+++ b/src/support/error/error_capacitor.cc
@@ -3,14 +3,8 @@
namespace InputXSLT {
ErrorCapacitor::ErrorCapacitor(ErrorMultiplexer* multiplexer):
- multiplexer_(multiplexer),
- error_cache_(new error_cache()) {
- this->multiplexer_->connectReceiver(this);
-}
-
-ErrorCapacitor::~ErrorCapacitor() {
- this->multiplexer_->disconnectReceiver(this);
-}
+ ErrorMultiplexer::receiver(multiplexer),
+ error_cache_(new error_cache()) { }
void ErrorCapacitor::discharge() {
if ( !this->error_cache_->empty() ) {
@@ -19,10 +13,10 @@ void ErrorCapacitor::discharge() {
}
void ErrorCapacitor::receive(
- const ErrorMultiplexer::ErrorType type,
+ const ErrorMultiplexer::error_type type,
const std::string& message
) {
- if ( type == ErrorMultiplexer::ErrorType::Error ) {
+ if ( type == ErrorMultiplexer::error_type::error ) {
this->error_cache_->emplace_back(message);
}
}
@@ -30,8 +24,8 @@ void ErrorCapacitor::receive(
ErrorCapacitor::exception::exception(error_cache_ptr ptr):
error_cache_(std::move(ptr)) { }
-auto ErrorCapacitor::exception::getCachedErrors() const -> const error_cache* {
- return this->error_cache_.get();
+auto ErrorCapacitor::exception::operator*() const -> const error_cache& {
+ return *(this->error_cache_.get());
}
}