[fit][bridge] Expose bridge's members directly.
fit::bridge exposes read/write access to the completer
and consumer it contains. Hiding these fields behind a
property just makes it more confusing to move-assign them
elsewhere and does not provide any meaningful encapsulation.
Test: fit-test
Change-Id: Ic8bb0b66764264867588536e7debc6aa9d46a667
diff --git a/system/ulib/fit/include/lib/fit/bridge.h b/system/ulib/fit/include/lib/fit/bridge.h
index 3fed908..f5cfb24 100644
--- a/system/ulib/fit/include/lib/fit/bridge.h
+++ b/system/ulib/fit/include/lib/fit/bridge.h
@@ -13,9 +13,9 @@
// by the association of two distinct participants: a completer and a consumer.
//
// - The completer is responsible for reporting completion of an asynchronous
-// task and providing its result. See |completer()| and |fit::completer|.
+// task and providing its result. See |completer| and |fit::completer|.
// - The consumer is responsible for consuming the result of the asynchronous
-// task. See |consumer()| and |fit::consumer|.
+// task. See |consumer| and |fit::consumer|.
//
// This class is often used for binding a |fit::promise| to a callback,
// facilitating interoperation of promises with functions that asynchronously
@@ -50,7 +50,7 @@
//
// DECOUPLING
//
-// See |fit::schedule_for_consumer()| for a helper which uses a bridge to
+// See |fit::schedule_for_consumer| for a helper which uses a bridge to
// decouple completion and consumption of a task's result so they can be
// performed on different executors.
//
@@ -79,8 +79,8 @@
//
// fit::promise<size_t> promise_read(uint8_t* buffer, size_t num_bytes) {
// fit::bridge<size_t> bridge;
-// read_async(num_bytes, buffer, bridge.completer().bind());
-// return bridge.consumer().promise_or(::fit::error());
+// read_async(num_bytes, buffer, bridge.completer.bind());
+// return bridge.consumer.promise_or(::fit::error());
// }
//
// Finally we can chain additional asynchronous tasks to be performed upon
@@ -109,14 +109,14 @@
// fit::promise<size_t, int> promise_write(uint8_t* buffer, size_t num_bytes) {
// fit::bridge<size_t, int> bridge;
// write_async(num_bytes, buffer,
-// [completer = std::move(bridge.completer())](size_t bytes_written, int error) {
+// [completer = std::move(bridge.completer)](size_t bytes_written, int error) {
// if (bytes_written == 0) {
// completer.complete_error(error);
// return;
// }
// completer.complete_ok(bytes_written);
// });
-// return bridge.consumer().promise_or(::fit::error(ERR_ABANDONED));
+// return bridge.consumer.promise_or(::fit::error(ERR_ABANDONED));
// }
//
// uint8_t buffer[4096];
@@ -134,8 +134,6 @@
// See documentation of |fit::promise| for more information.
template <typename V, typename E>
class bridge final {
- using bridge_state = ::fit::internal::bridge_state<V, E>;
-
public:
using value_type = V;
using error_type = E;
@@ -146,30 +144,22 @@
// Creates a bridge representing a new asynchronous task formed by the
// association of a completer and consumer.
bridge() {
- bridge_state::create(&completer_.completion_ref_,
- &consumer_.consumption_ref_);
+ ::fit::internal::bridge_state<V, E>::create(
+ &completer.completion_ref_,
+ &consumer.consumption_ref_);
}
bridge(bridge&& other) = default;
+ bridge(const bridge& other) = delete;
~bridge() = default;
bridge& operator=(bridge&& other) = default;
-
- // Gets a reference to the bridge's completer capability.
- // The completer can be moved out of the bridge, if desired.
- completer_type& completer() { return completer_; }
- const completer_type& completer() const { return completer_; }
-
- // Gets a reference to the bridge's consumer capability.
- // The consumer can be moved out of the bridge, if desired.
- consumer_type& consumer() { return consumer_; }
- const consumer_type& consumer() const { return consumer_; }
-
- bridge(const bridge& other) = delete;
bridge& operator=(const bridge& other) = delete;
-private:
- completer_type completer_;
- consumer_type consumer_;
+ // The bridge's completer capability.
+ completer_type completer;
+
+ // The bridge's consumer capability.
+ consumer_type consumer;
};
// Provides a result upon completion of an asynchronous task.
@@ -476,11 +466,11 @@
typename Promise::error_type>
bridge;
executor->schedule_task(
- promise.then([completer = std::move(bridge.completer())](
+ promise.then([completer = std::move(bridge.completer)](
typename Promise::result_type& result) mutable {
completer.complete_or_abandon(std::move(result));
}));
- return std::move(bridge.consumer());
+ return std::move(bridge.consumer);
}
} // namespace fit
diff --git a/system/ulib/fit/include/lib/fit/sequencer.h b/system/ulib/fit/include/lib/fit/sequencer.h
index 509cd8e..996bc68 100644
--- a/system/ulib/fit/include/lib/fit/sequencer.h
+++ b/system/ulib/fit/include/lib/fit/sequencer.h
@@ -52,10 +52,10 @@
assert(promise);
fit::bridge<> bridge;
- fit::consumer<> prior = swap_prior(std::move(bridge.consumer()));
+ fit::consumer<> prior = swap_prior(std::move(bridge.consumer));
return prior.promise_or(fit::ok())
.then([promise = std::move(promise),
- completer = std::move(bridge.completer())](
+ completer = std::move(bridge.completer)](
fit::context& context, fit::result<>) mutable {
// This handler will run once the completer associated
// with the |prior| promise is abandoned. Once the promise
diff --git a/system/ulib/fit/sequencer.cpp b/system/ulib/fit/sequencer.cpp
index 687db67..b490455 100644
--- a/system/ulib/fit/sequencer.cpp
+++ b/system/ulib/fit/sequencer.cpp
@@ -14,7 +14,7 @@
// completer so that a promise chained onto the consumer using
// |promise_or()| will become immediately runnable.
fit::bridge<> bridge;
- prior_ = std::move(bridge.consumer());
+ prior_ = std::move(bridge.consumer);
}
sequencer::~sequencer() = default;
diff --git a/system/utest/fit/bridge_tests.cpp b/system/utest/fit/bridge_tests.cpp
index 391e9d4..c783a87 100644
--- a/system/utest/fit/bridge_tests.cpp
+++ b/system/utest/fit/bridge_tests.cpp
@@ -45,29 +45,29 @@
// Create a new bridge.
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_TRUE(bridge.consumer());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_TRUE(bridge.consumer);
// Can move-construct.
fit::bridge<int, const char*> bridge2(std::move(bridge));
- EXPECT_TRUE(bridge2.completer());
- EXPECT_TRUE(bridge2.consumer());
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer());
+ EXPECT_TRUE(bridge2.completer);
+ EXPECT_TRUE(bridge2.consumer);
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer);
// Can move-assign.
bridge = std::move(bridge2);
- EXPECT_TRUE(bridge.completer());
- EXPECT_TRUE(bridge.consumer());
- EXPECT_FALSE(bridge2.completer());
- EXPECT_FALSE(bridge2.consumer());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_TRUE(bridge.consumer);
+ EXPECT_FALSE(bridge2.completer);
+ EXPECT_FALSE(bridge2.consumer);
// It still works.
- bridge.completer().complete_error("Test");
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.complete_error("Test");
+ EXPECT_FALSE(bridge.completer);
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
EXPECT_STR_EQ("Test", result.error());
@@ -83,7 +83,7 @@
// Can move-construct from non-empty.
fit::bridge<int, const char*> bridge;
- fit::completer<int, const char*> completer2(std::move(bridge.completer()));
+ fit::completer<int, const char*> completer2(std::move(bridge.completer));
EXPECT_TRUE(completer2);
// Can move-assign from non-empty.
@@ -95,8 +95,8 @@
completer.complete_error("Test");
EXPECT_FALSE(completer);
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
EXPECT_STR_EQ("Test", result.error());
@@ -119,17 +119,17 @@
// abandon()
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().abandon();
- EXPECT_FALSE(bridge.completer());
- EXPECT_TRUE(bridge.consumer().was_abandoned());
+ bridge.completer.abandon();
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_TRUE(bridge.consumer.was_abandoned());
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise_or(
+ fit::run_single_threaded(bridge.consumer.promise_or(
fit::error("Abandoned")));
- EXPECT_FALSE(bridge.consumer());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
EXPECT_STR_EQ("Abandoned", result.error());
}
@@ -137,17 +137,17 @@
// completer is discarded
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer() = fit::completer<int, const char*>();
- EXPECT_FALSE(bridge.completer());
- EXPECT_TRUE(bridge.consumer().was_abandoned());
+ bridge.completer = fit::completer<int, const char*>();
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_TRUE(bridge.consumer.was_abandoned());
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise_or(
+ fit::run_single_threaded(bridge.consumer.promise_or(
fit::error("Abandoned")));
- EXPECT_FALSE(bridge.consumer());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
EXPECT_STR_EQ("Abandoned", result.error());
}
@@ -161,32 +161,32 @@
// complete_ok()
{
fit::bridge<void, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().complete_ok();
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ bridge.completer.complete_ok();
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<void, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::ok, result.state());
}
// complete_ok(value)
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().complete_ok(42);
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ bridge.completer.complete_ok(42);
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::ok, result.state());
EXPECT_EQ(42, result.value());
}
@@ -194,32 +194,32 @@
// complete_error()
{
fit::bridge<int, void> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().complete_error();
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ bridge.completer.complete_error();
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<int, void> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
}
// complete_error(error)
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().complete_error("Test");
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ bridge.completer.complete_error("Test");
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
EXPECT_STR_EQ("Test", result.error());
}
@@ -227,16 +227,16 @@
// complete_or_abandon(fit::ok(...))
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().complete_or_abandon(fit::ok(42));
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ bridge.completer.complete_or_abandon(fit::ok(42));
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::ok, result.state());
EXPECT_EQ(42, result.value());
}
@@ -244,16 +244,16 @@
// complete_or_abandon(fit::error(...))
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().complete_or_abandon(fit::error("Test"));
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ bridge.completer.complete_or_abandon(fit::error("Test"));
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise());
- EXPECT_FALSE(bridge.consumer());
+ fit::run_single_threaded(bridge.consumer.promise());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
EXPECT_STR_EQ("Test", result.error());
}
@@ -261,17 +261,17 @@
// complete_or_abandon(fit::pending())
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ EXPECT_TRUE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
- bridge.completer().complete_or_abandon(fit::pending());
- EXPECT_FALSE(bridge.completer());
- EXPECT_TRUE(bridge.consumer().was_abandoned());
+ bridge.completer.complete_or_abandon(fit::pending());
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_TRUE(bridge.consumer.was_abandoned());
fit::result<int, const char*> result =
- fit::run_single_threaded(bridge.consumer().promise_or(
+ fit::run_single_threaded(bridge.consumer.promise_or(
fit::error("Abandoned")));
- EXPECT_FALSE(bridge.consumer());
+ EXPECT_FALSE(bridge.consumer);
EXPECT_EQ(fit::result_state::error, result.state());
EXPECT_STR_EQ("Abandoned", result.error());
}
@@ -286,12 +286,12 @@
{
uint64_t run_count = 0;
fit::bridge<> bridge;
- async_invoke_callback_no_args(&run_count, bridge.completer().bind());
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ async_invoke_callback_no_args(&run_count, bridge.completer.bind());
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<> result = fit::run_single_threaded(
- bridge.consumer().promise());
+ bridge.consumer.promise());
EXPECT_EQ(fit::result_state::ok, result.state());
EXPECT_EQ(1, run_count);
}
@@ -300,12 +300,12 @@
{
uint64_t run_count = 0;
fit::bridge<std::tuple<>> bridge;
- async_invoke_callback_no_args(&run_count, bridge.completer().bind_tuple());
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ async_invoke_callback_no_args(&run_count, bridge.completer.bind_tuple());
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<std::tuple<>> result = fit::run_single_threaded(
- bridge.consumer().promise());
+ bridge.consumer.promise());
EXPECT_EQ(fit::result_state::ok, result.state());
EXPECT_EQ(1, run_count);
}
@@ -320,12 +320,12 @@
{
uint64_t run_count = 0;
fit::bridge<std::string> bridge;
- async_invoke_callback_one_arg(&run_count, bridge.completer().bind());
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ async_invoke_callback_one_arg(&run_count, bridge.completer.bind());
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<std::string> result = fit::run_single_threaded(
- bridge.consumer().promise());
+ bridge.consumer.promise());
EXPECT_EQ(fit::result_state::ok, result.state());
EXPECT_TRUE(result.value() == "Hippopotamus");
EXPECT_EQ(1, run_count);
@@ -335,12 +335,12 @@
{
uint64_t run_count = 0;
fit::bridge<std::tuple<std::string>> bridge;
- async_invoke_callback_one_arg(&run_count, bridge.completer().bind_tuple());
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ async_invoke_callback_one_arg(&run_count, bridge.completer.bind_tuple());
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<std::tuple<std::string>> result = fit::run_single_threaded(
- bridge.consumer().promise());
+ bridge.consumer.promise());
EXPECT_EQ(fit::result_state::ok, result.state());
EXPECT_TRUE(std::get<0>(result.value()) == "Hippopotamus");
EXPECT_EQ(1, run_count);
@@ -356,12 +356,12 @@
{
uint64_t run_count = 0;
fit::bridge<std::tuple<std::string, int>> bridge;
- async_invoke_callback_two_args(&run_count, bridge.completer().bind_tuple());
- EXPECT_FALSE(bridge.completer());
- EXPECT_FALSE(bridge.consumer().was_abandoned());
+ async_invoke_callback_two_args(&run_count, bridge.completer.bind_tuple());
+ EXPECT_FALSE(bridge.completer);
+ EXPECT_FALSE(bridge.consumer.was_abandoned());
fit::result<std::tuple<std::string, int>> result = fit::run_single_threaded(
- bridge.consumer().promise());
+ bridge.consumer.promise());
EXPECT_EQ(fit::result_state::ok, result.state());
EXPECT_TRUE(std::get<0>(result.value()) ==
"What do you get when you multiply six by nine?");
@@ -381,7 +381,7 @@
// Can move-construct from non-empty.
fit::bridge<int, const char*> bridge;
- fit::consumer<int, const char*> consumer2(std::move(bridge.consumer()));
+ fit::consumer<int, const char*> consumer2(std::move(bridge.consumer));
EXPECT_TRUE(consumer2);
// Can move-assign from non-empty.
@@ -390,8 +390,8 @@
EXPECT_FALSE(consumer2);
// It still works.
- bridge.completer().complete_error("Test");
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.complete_error("Test");
+ EXPECT_FALSE(bridge.completer);
fit::result<int, const char*> result =
fit::run_single_threaded(consumer.promise());
EXPECT_FALSE(consumer);
@@ -417,29 +417,29 @@
// cancel()
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_TRUE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- bridge.consumer().cancel();
- EXPECT_FALSE(bridge.consumer());
- EXPECT_TRUE(bridge.completer().was_canceled());
+ bridge.consumer.cancel();
+ EXPECT_FALSE(bridge.consumer);
+ EXPECT_TRUE(bridge.completer.was_canceled());
- bridge.completer().complete_ok(42);
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.complete_ok(42);
+ EXPECT_FALSE(bridge.completer);
}
// consumer is discarded()
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_TRUE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- bridge.consumer() = fit::consumer<int, const char*>();
- EXPECT_FALSE(bridge.consumer());
- EXPECT_TRUE(bridge.completer().was_canceled());
+ bridge.consumer = fit::consumer<int, const char*>();
+ EXPECT_FALSE(bridge.consumer);
+ EXPECT_TRUE(bridge.completer.was_canceled());
- bridge.completer().complete_ok(42);
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.complete_ok(42);
+ EXPECT_FALSE(bridge.completer);
}
END_TEST;
@@ -451,15 +451,15 @@
// promise() when completed
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_TRUE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- fit::promise<int, const char*> promise = bridge.consumer().promise();
- EXPECT_FALSE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ fit::promise<int, const char*> promise = bridge.consumer.promise();
+ EXPECT_FALSE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- bridge.completer().complete_ok(42);
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.complete_ok(42);
+ EXPECT_FALSE(bridge.completer);
fit::result<int, const char*> result =
fit::run_single_threaded(std::move(promise));
@@ -470,15 +470,15 @@
// promise() when abandoned
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_TRUE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- fit::promise<int, const char*> promise = bridge.consumer().promise();
- EXPECT_FALSE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ fit::promise<int, const char*> promise = bridge.consumer.promise();
+ EXPECT_FALSE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- bridge.completer().abandon();
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.abandon();
+ EXPECT_FALSE(bridge.completer);
fit::result<int, const char*> result =
fit::run_single_threaded(std::move(promise));
@@ -488,16 +488,16 @@
// promise_or() when completed
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_TRUE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- fit::promise<int, const char*> promise = bridge.consumer().promise_or(
+ fit::promise<int, const char*> promise = bridge.consumer.promise_or(
fit::error("Abandoned"));
- EXPECT_FALSE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_FALSE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- bridge.completer().complete_ok(42);
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.complete_ok(42);
+ EXPECT_FALSE(bridge.completer);
fit::result<int, const char*> result =
fit::run_single_threaded(std::move(promise));
@@ -508,16 +508,16 @@
// promise_or() when abandoned
{
fit::bridge<int, const char*> bridge;
- EXPECT_TRUE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_TRUE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- fit::promise<int, const char*> promise = bridge.consumer().promise_or(
+ fit::promise<int, const char*> promise = bridge.consumer.promise_or(
fit::error("Abandoned"));
- EXPECT_FALSE(bridge.consumer());
- EXPECT_FALSE(bridge.completer().was_canceled());
+ EXPECT_FALSE(bridge.consumer);
+ EXPECT_FALSE(bridge.completer.was_canceled());
- bridge.completer().abandon();
- EXPECT_FALSE(bridge.completer());
+ bridge.completer.abandon();
+ EXPECT_FALSE(bridge.completer);
fit::result<int, const char*> result =
fit::run_single_threaded(std::move(promise));
diff --git a/system/utest/fit/scope_tests.cpp b/system/utest/fit/scope_tests.cpp
index 102decd..aa41cdf 100644
--- a/system/utest/fit/scope_tests.cpp
+++ b/system/utest/fit/scope_tests.cpp
@@ -204,7 +204,7 @@
for (int i = 0; i < num_threads; i++) {
fit::bridge bridge;
threads[i] =
- std::thread([&, completer = std::move(bridge.completer())]() mutable {
+ std::thread([&, completer = std::move(bridge.completer)]() mutable {
for (int j = 0; j < num_tasks_per_thread; j++) {
if (j == exit_threshold) {
executor.schedule_task(fit::make_promise([&] {
@@ -219,7 +219,7 @@
}
completer.complete_ok();
});
- executor.schedule_task(bridge.consumer().promise());
+ executor.schedule_task(bridge.consumer.promise());
}
// Run the tasks.
diff --git a/system/utest/fit/sequencer_tests.cpp b/system/utest/fit/sequencer_tests.cpp
index 13161a2..8c83683 100644
--- a/system/utest/fit/sequencer_tests.cpp
+++ b/system/utest/fit/sequencer_tests.cpp
@@ -93,7 +93,7 @@
for (int i = 0; i < num_threads; i++) {
fit::bridge bridge;
threads[i] =
- std::thread([&, completer = std::move(bridge.completer())]() mutable {
+ std::thread([&, completer = std::move(bridge.completer)]() mutable {
for (int j = 0; j < num_tasks_per_thread; j++) {
executor.schedule_task(
fit::make_promise([&] { run_count++; }).wrap_with(seq));
@@ -101,7 +101,7 @@
}
completer.complete_ok();
});
- executor.schedule_task(bridge.consumer().promise());
+ executor.schedule_task(bridge.consumer.promise());
}
// Run the tasks.