35 lines
784 B
C++
35 lines
784 B
C++
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
|
|
|
|
#pragma once
|
|
|
|
#if !defined(RXCPP_SOURCES_RX_COMPOSITE_EXCEPTION_HPP)
|
|
#define RXCPP_SOURCES_RX_COMPOSITE_EXCEPTION_HPP
|
|
|
|
#include "rx-includes.hpp"
|
|
|
|
namespace rxcpp {
|
|
|
|
struct composite_exception : std::exception {
|
|
|
|
typedef std::vector<rxu::error_ptr> exception_values;
|
|
|
|
virtual const char *what() const RXCPP_NOEXCEPT override {
|
|
return "rxcpp composite exception";
|
|
}
|
|
|
|
virtual bool empty() const {
|
|
return exceptions.empty();
|
|
}
|
|
|
|
virtual composite_exception add(rxu::error_ptr exception_ptr) {
|
|
exceptions.push_back(exception_ptr);
|
|
return *this;
|
|
}
|
|
|
|
exception_values exceptions;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|