diff --git a/cpp/mrc/src/internal/expected.hpp b/cpp/mrc/include/mrc/core/error.hpp similarity index 86% rename from cpp/mrc/src/internal/expected.hpp rename to cpp/mrc/include/mrc/core/error.hpp index c23439a09..c6ead312a 100644 --- a/cpp/mrc/src/internal/expected.hpp +++ b/cpp/mrc/include/mrc/core/error.hpp @@ -17,23 +17,19 @@ #pragma once -#include "mrc/core/std23_expected.hpp" // IWYU pragma: export +#include "mrc/core/expected.hpp" // IWYU pragma: export #include "mrc/utils/macros.hpp" #include "mrc/utils/string_utils.hpp" // IWYU pragma: export -namespace mrc::internal { +namespace mrc { enum class ErrorCode { Internal, Fatal, + ChannelClosed, }; -class Error; - -// todo(#219) - update tidy to allow the following typedef -using UnexpectedError = std23::unexpected; // NOLINT - class Error final : public std::exception { Error(ErrorCode type) : m_code(type) {} @@ -42,9 +38,9 @@ class Error final : public std::exception public: template - static UnexpectedError create(ArgsT&&... args) + static auto create(ArgsT&&... args) -> decltype(auto) { - return UnexpectedError(Error(std::forward(args)...)); + return unexpected(Error(std::forward(args)...)); } DEFAULT_MOVEABILITY(Error); @@ -70,7 +66,7 @@ class Error final : public std::exception }; template -using Expected = std23::expected; // NOLINT +using Expected = expected; // NOLINT #define MRC_CHECK(condition) \ if (!(condition)) \ @@ -92,4 +88,4 @@ using Expected = std23::expected; // NOLINT throw expected.error(); \ } -} // namespace mrc::internal +} // namespace mrc diff --git a/cpp/mrc/include/mrc/core/std23_expected.hpp b/cpp/mrc/include/mrc/core/expected.hpp similarity index 99% rename from cpp/mrc/include/mrc/core/std23_expected.hpp rename to cpp/mrc/include/mrc/core/expected.hpp index 20580da29..2c20f58bf 100644 --- a/cpp/mrc/include/mrc/core/std23_expected.hpp +++ b/cpp/mrc/include/mrc/core/expected.hpp @@ -55,7 +55,7 @@ #include #include -namespace std23 { +namespace mrc { // clang-format off // NOLINTBEGIN(*) @@ -1478,4 +1478,4 @@ class expected { // NOLINTEND(*) // clang-format on -} // namespace std23 +} // namespace mrc diff --git a/cpp/mrc/include/mrc/coroutines/ring_buffer.hpp b/cpp/mrc/include/mrc/coroutines/ring_buffer.hpp index 94625ff4b..de4b8b3d9 100644 --- a/cpp/mrc/include/mrc/coroutines/ring_buffer.hpp +++ b/cpp/mrc/include/mrc/coroutines/ring_buffer.hpp @@ -38,7 +38,7 @@ #pragma once -#include "mrc/core/std23_expected.hpp" +#include "mrc/core/expected.hpp" #include "mrc/coroutines/schedule_policy.hpp" #include "mrc/coroutines/thread_local_context.hpp" #include "mrc/coroutines/thread_pool.hpp" @@ -243,13 +243,13 @@ class RingBuffer /** * @return The consumed element or std::nullopt if the read has failed. */ - auto await_resume() -> std23::expected + auto await_resume() -> mrc::expected { ThreadLocalContext::resume_thread_local_context(); if (m_stopped) { - return std23::unexpected(RingBufferOpStatus::Stopped); + return mrc::unexpected(RingBufferOpStatus::Stopped); } return std::move(m_e); diff --git a/cpp/mrc/src/internal/control_plane/client.hpp b/cpp/mrc/src/internal/control_plane/client.hpp index a640fef34..b9a211dbc 100644 --- a/cpp/mrc/src/internal/control_plane/client.hpp +++ b/cpp/mrc/src/internal/control_plane/client.hpp @@ -18,12 +18,12 @@ #pragma once #include "internal/control_plane/client/instance.hpp" // IWYU pragma: keep -#include "internal/expected.hpp" #include "internal/grpc/client_streaming.hpp" #include "internal/grpc/stream_writer.hpp" #include "internal/resources/partition_resources_base.hpp" #include "internal/service.hpp" +#include "mrc/core/error.hpp" #include "mrc/node/source_channel.hpp" #include "mrc/protos/architect.grpc.pb.h" #include "mrc/protos/architect.pb.h" diff --git a/cpp/mrc/src/internal/control_plane/client/connections_manager.cpp b/cpp/mrc/src/internal/control_plane/client/connections_manager.cpp index 8d21120cf..c89c070b1 100644 --- a/cpp/mrc/src/internal/control_plane/client/connections_manager.cpp +++ b/cpp/mrc/src/internal/control_plane/client/connections_manager.cpp @@ -19,12 +19,12 @@ #include "internal/control_plane/client.hpp" #include "internal/control_plane/client/instance.hpp" -#include "internal/expected.hpp" #include "internal/runnable/resources.hpp" #include "internal/ucx/resources.hpp" #include "internal/ucx/worker.hpp" #include "internal/utils/contains.hpp" +#include "mrc/core/error.hpp" #include "mrc/core/task_queue.hpp" #include "mrc/protos/architect.pb.h" diff --git a/cpp/mrc/src/internal/control_plane/client/state_manager.cpp b/cpp/mrc/src/internal/control_plane/client/state_manager.cpp index b5af3b7ad..c53a48aec 100644 --- a/cpp/mrc/src/internal/control_plane/client/state_manager.cpp +++ b/cpp/mrc/src/internal/control_plane/client/state_manager.cpp @@ -18,9 +18,9 @@ #include "internal/control_plane/client/state_manager.hpp" #include "internal/control_plane/client.hpp" -#include "internal/expected.hpp" #include "internal/runnable/resources.hpp" +#include "mrc/core/error.hpp" #include "mrc/node/edge_builder.hpp" #include "mrc/node/rx_sink.hpp" #include "mrc/node/source_channel.hpp" diff --git a/cpp/mrc/src/internal/control_plane/client/subscription_service.cpp b/cpp/mrc/src/internal/control_plane/client/subscription_service.cpp index 5ceb4f589..d41f00bef 100644 --- a/cpp/mrc/src/internal/control_plane/client/subscription_service.cpp +++ b/cpp/mrc/src/internal/control_plane/client/subscription_service.cpp @@ -19,10 +19,10 @@ #include "internal/control_plane/client.hpp" #include "internal/control_plane/client/instance.hpp" -#include "internal/expected.hpp" #include "internal/service.hpp" #include "internal/utils/contains.hpp" +#include "mrc/core/error.hpp" #include "mrc/protos/architect.pb.h" #include diff --git a/cpp/mrc/src/internal/control_plane/proto_helpers.hpp b/cpp/mrc/src/internal/control_plane/proto_helpers.hpp index f802c7b15..d0c72d8c8 100644 --- a/cpp/mrc/src/internal/control_plane/proto_helpers.hpp +++ b/cpp/mrc/src/internal/control_plane/proto_helpers.hpp @@ -17,7 +17,7 @@ #pragma once -#include "internal/expected.hpp" +#include "mrc/core/error.hpp" #include diff --git a/cpp/mrc/src/internal/control_plane/server.cpp b/cpp/mrc/src/internal/control_plane/server.cpp index 014972c51..a4ca6acea 100644 --- a/cpp/mrc/src/internal/control_plane/server.cpp +++ b/cpp/mrc/src/internal/control_plane/server.cpp @@ -314,11 +314,11 @@ void Server::do_handle_event(event_t&& event) DVLOG(10) << "event.ok failed; close stream"; drop_stream(event.stream); } - } catch (const std23::bad_expected_access& e) + } catch (const mrc::bad_expected_access& e) { LOG(ERROR) << "bad_expected_access: " << e.error().message(); on_fatal_exception(); - } catch (const UnexpectedError& e) + } catch (const mrc::unexpected& e) { LOG(ERROR) << "unexpected: " << e.value().message(); on_fatal_exception(); diff --git a/cpp/mrc/src/internal/control_plane/server.hpp b/cpp/mrc/src/internal/control_plane/server.hpp index 0b93e1718..263c5dffe 100644 --- a/cpp/mrc/src/internal/control_plane/server.hpp +++ b/cpp/mrc/src/internal/control_plane/server.hpp @@ -18,11 +18,11 @@ #pragma once #include "internal/control_plane/server/connection_manager.hpp" -#include "internal/expected.hpp" #include "internal/grpc/server.hpp" #include "internal/grpc/server_streaming.hpp" #include "internal/service.hpp" +#include "mrc/core/error.hpp" #include "mrc/node/queue.hpp" #include "mrc/protos/architect.grpc.pb.h" diff --git a/cpp/mrc/src/internal/control_plane/server/connection_manager.hpp b/cpp/mrc/src/internal/control_plane/server/connection_manager.hpp index 685843a6e..8add0553a 100644 --- a/cpp/mrc/src/internal/control_plane/server/connection_manager.hpp +++ b/cpp/mrc/src/internal/control_plane/server/connection_manager.hpp @@ -18,9 +18,9 @@ #pragma once #include "internal/control_plane/server/versioned_issuer.hpp" -#include "internal/expected.hpp" #include "internal/grpc/server_streaming.hpp" +#include "mrc/core/error.hpp" #include "mrc/types.hpp" #include diff --git a/cpp/mrc/src/internal/control_plane/server/subscription_manager.hpp b/cpp/mrc/src/internal/control_plane/server/subscription_manager.hpp index 35809eb8f..d1f0c6eae 100644 --- a/cpp/mrc/src/internal/control_plane/server/subscription_manager.hpp +++ b/cpp/mrc/src/internal/control_plane/server/subscription_manager.hpp @@ -19,8 +19,8 @@ #include "internal/control_plane/server/tagged_issuer.hpp" #include "internal/control_plane/server/versioned_issuer.hpp" -#include "internal/expected.hpp" +#include "mrc/core/error.hpp" #include "mrc/types.hpp" #include diff --git a/cpp/mrc/src/tests/test_expected.cpp b/cpp/mrc/src/tests/test_expected.cpp index ad31e8f7e..1de9a1f49 100644 --- a/cpp/mrc/src/tests/test_expected.cpp +++ b/cpp/mrc/src/tests/test_expected.cpp @@ -15,7 +15,7 @@ * limitations under the License. */ -#include "internal/expected.hpp" +#include "mrc/core/error.hpp" #include #include @@ -26,7 +26,6 @@ #include using namespace mrc; -using namespace mrc::internal; class TestExpected : public ::testing::Test {};