pw_rpc: Remove ChannelOutput arg for ProcessPacket
The original intent of the ChannelOutput-accepting variant
of ProcessPacket was to support dynamic assignment of
channels, but that is solved via a different API now.
The interface is currently used to report errors, but those
are also available via the return status.
Change-Id: Id829f2c365f8e9dc2592fe5dda97bb652a6c46fc
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/107335
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Taylor Cramer <cramertj@google.com>
diff --git a/pw_hdlc/hdlc_sys_io_system_server.cc b/pw_hdlc/hdlc_sys_io_system_server.cc
index 74934a3..c2af547 100644
--- a/pw_hdlc/hdlc_sys_io_system_server.cc
+++ b/pw_hdlc/hdlc_sys_io_system_server.cc
@@ -69,7 +69,7 @@
if (auto result = decoder.Process(byte); result.ok()) {
hdlc::Frame& frame = result.value();
if (frame.address() == hdlc::kDefaultRpcAddress) {
- server.ProcessPacket(frame.data(), hdlc_channel_output);
+ server.ProcessPacket(frame.data());
}
}
}
diff --git a/pw_hdlc/public/pw_hdlc/rpc_packets.h b/pw_hdlc/public/pw_hdlc/rpc_packets.h
index 2913021..d52ef2c 100644
--- a/pw_hdlc/public/pw_hdlc/rpc_packets.h
+++ b/pw_hdlc/public/pw_hdlc/rpc_packets.h
@@ -30,14 +30,4 @@
span<std::byte> decode_buffer,
unsigned rpc_address = kDefaultRpcAddress);
-// Reads HDLC frames with sys_io::ReadByte, using decode_buffer to store frames.
-// HDLC frames sent to rpc_address are passed to the RPC server.
-//
-// Note: this overload (with the `ChannelOutput` argument) is deprecated and
-// will be removed.
-Status ReadAndProcessPackets(rpc::Server& server,
- rpc::ChannelOutput& output,
- span<std::byte> decode_buffer,
- unsigned rpc_address = kDefaultRpcAddress);
-
} // namespace pw::hdlc
diff --git a/pw_hdlc/rpc_packets.cc b/pw_hdlc/rpc_packets.cc
index fd42968..6241dc4 100644
--- a/pw_hdlc/rpc_packets.cc
+++ b/pw_hdlc/rpc_packets.cc
@@ -38,11 +38,4 @@
}
}
-Status ReadAndProcessPackets(rpc::Server& server,
- rpc::ChannelOutput&,
- span<std::byte> decode_buffer,
- unsigned rpc_address) {
- return ReadAndProcessPackets(server, decode_buffer, rpc_address);
-}
-
} // namespace pw::hdlc
diff --git a/pw_rpc/client_server.cc b/pw_rpc/client_server.cc
index 1268b17..e6d37b2 100644
--- a/pw_rpc/client_server.cc
+++ b/pw_rpc/client_server.cc
@@ -16,9 +16,8 @@
namespace pw::rpc {
-Status ClientServer::ProcessPacket(ConstByteSpan packet,
- ChannelOutput* interface) {
- Status status = server_.ProcessPacket(packet, interface);
+Status ClientServer::ProcessPacket(ConstByteSpan packet) {
+ Status status = server_.ProcessPacket(packet);
if (status.IsInvalidArgument()) {
// INVALID_ARGUMENT indicates the packet is intended for a client.
status = client_.ProcessPacket(packet);
diff --git a/pw_rpc/client_server_test.cc b/pw_rpc/client_server_test.cc
index bddcea8..15a50e9 100644
--- a/pw_rpc/client_server_test.cc
+++ b/pw_rpc/client_server_test.cc
@@ -56,7 +56,7 @@
Result result = packet.Encode(buffer);
EXPECT_EQ(result.status(), OkStatus());
- EXPECT_EQ(client_server.ProcessPacket(result.value(), output), OkStatus());
+ EXPECT_EQ(client_server.ProcessPacket(result.value()), OkStatus());
}
TEST(ClientServer, ProcessPacket_CallsClient) {
@@ -73,12 +73,12 @@
// No calls are registered on the client, so nothing should happen. The
// ProcessPacket call still returns OK since the client handled it.
- EXPECT_EQ(client_server.ProcessPacket(result.value(), output), OkStatus());
+ EXPECT_EQ(client_server.ProcessPacket(result.value()), OkStatus());
}
TEST(ClientServer, ProcessPacket_BadData) {
ClientServer client_server(channels);
- EXPECT_EQ(client_server.ProcessPacket({}, output), Status::DataLoss());
+ EXPECT_EQ(client_server.ProcessPacket({}), Status::DataLoss());
}
} // namespace
diff --git a/pw_rpc/docs.rst b/pw_rpc/docs.rst
index 732e829..59e2605 100644
--- a/pw_rpc/docs.rst
+++ b/pw_rpc/docs.rst
@@ -316,8 +316,7 @@
std::array<std::byte, kMaxTransmissionUnit> input_buffer;
PW_LOG_INFO("Starting pw_rpc server");
- pw::hdlc::ReadAndProcessPackets(
- server, hdlc_channel_output, input_buffer);
+ pw::hdlc::ReadAndProcessPackets(server, input_buffer);
}
Channels
diff --git a/pw_rpc/nanopb/method_test.cc b/pw_rpc/nanopb/method_test.cc
index 876c7a8..b766a8e 100644
--- a/pw_rpc/nanopb/method_test.cc
+++ b/pw_rpc/nanopb/method_test.cc
@@ -355,8 +355,7 @@
std::array<byte, 128> encoded_request = {};
auto encoded = context.client_stream(request).Encode(encoded_request);
ASSERT_EQ(OkStatus(), encoded.status());
- ASSERT_EQ(OkStatus(),
- context.server().ProcessPacket(*encoded, context.output()));
+ ASSERT_EQ(OkStatus(), context.server().ProcessPacket(*encoded));
EXPECT_EQ(request_struct.integer, 1 << 30);
EXPECT_EQ(request_struct.status_code, 9u);
@@ -397,8 +396,7 @@
std::array<byte, 128> encoded_request = {};
auto encoded = context.client_stream(request).Encode(encoded_request);
ASSERT_EQ(OkStatus(), encoded.status());
- ASSERT_EQ(OkStatus(),
- context.server().ProcessPacket(*encoded, context.output()));
+ ASSERT_EQ(OkStatus(), context.server().ProcessPacket(*encoded));
EXPECT_EQ(request_struct.integer, 1 << 29);
EXPECT_EQ(request_struct.status_code, 8u);
diff --git a/pw_rpc/public/pw_rpc/client_server.h b/pw_rpc/public/pw_rpc/client_server.h
index 78ac841..85da7ca 100644
--- a/pw_rpc/public/pw_rpc/client_server.h
+++ b/pw_rpc/public/pw_rpc/client_server.h
@@ -26,23 +26,12 @@
: client_(channels), server_(channels) {}
// Sends a packet to either the client or the server, depending on its type.
- //
- // ProcessPacket optionally accepts a ChannelOutput as a second argument. If
- // provided, the server will be able to dynamically assign channels as
- // requests come in instead of requiring channels to be known at compile time.
- Status ProcessPacket(ConstByteSpan packet) {
- return ProcessPacket(packet, nullptr);
- }
- Status ProcessPacket(ConstByteSpan packet, ChannelOutput& interface) {
- return ProcessPacket(packet, &interface);
- }
+ Status ProcessPacket(ConstByteSpan packet);
constexpr Client& client() { return client_; }
constexpr Server& server() { return server_; }
private:
- Status ProcessPacket(ConstByteSpan packet, ChannelOutput* interface);
-
Client client_;
Server server_;
};
diff --git a/pw_rpc/public/pw_rpc/internal/test_method_context.h b/pw_rpc/public/pw_rpc/internal/test_method_context.h
index bd01aae..f96efdf 100644
--- a/pw_rpc/public/pw_rpc/internal/test_method_context.h
+++ b/pw_rpc/public/pw_rpc/internal/test_method_context.h
@@ -85,8 +85,7 @@
{},
error)
.Encode(packet)
- .value(),
- output_)
+ .value())
.ok());
}
@@ -122,8 +121,7 @@
0,
payload)
.Encode(packet)
- .value(),
- output_)
+ .value())
.ok());
}
@@ -135,8 +133,7 @@
UnwrapServiceId(service_.service_id()),
kMethodId)
.Encode(packet)
- .value(),
- output_)
+ .value())
.ok());
}
diff --git a/pw_rpc/public/pw_rpc/server.h b/pw_rpc/public/pw_rpc/server.h
index bcb8916..9411564 100644
--- a/pw_rpc/public/pw_rpc/server.h
+++ b/pw_rpc/public/pw_rpc/server.h
@@ -67,22 +67,11 @@
// DATA_LOSS - Failed to decode the packet.
// INVALID_ARGUMENT - The packet is intended for a client, not a server.
// UNAVAILABLE - No RPC channel with the requested ID was found.
- //
- // ProcessPacket optionally accepts a ChannelOutput as a second argument. If
- // provided, the server respond on that interface if an unknown channel is
- // requested.
Status ProcessPacket(ConstByteSpan packet_data)
- PW_LOCKS_EXCLUDED(internal::rpc_lock()) {
- return ProcessPacket(packet_data, nullptr);
- }
- Status ProcessPacket(ConstByteSpan packet_data, ChannelOutput& interface)
- PW_LOCKS_EXCLUDED(internal::rpc_lock()) {
- return ProcessPacket(packet_data, &interface);
- }
+ PW_LOCKS_EXCLUDED(internal::rpc_lock());
private:
friend class internal::Call;
- friend class ClientServer;
// Give call classes access to OpenContext.
friend class RawServerReaderWriter;
@@ -145,9 +134,6 @@
*this, channel_id, service, method, kOpenCallId);
}
- Status ProcessPacket(ConstByteSpan packet_data, ChannelOutput* interface)
- PW_LOCKS_EXCLUDED(internal::rpc_lock());
-
std::tuple<Service*, const internal::Method*> FindMethod(
const internal::Packet& packet)
PW_EXCLUSIVE_LOCKS_REQUIRED(internal::rpc_lock());
diff --git a/pw_rpc/pwpb/method_test.cc b/pw_rpc/pwpb/method_test.cc
index 493e80d..3a31d09 100644
--- a/pw_rpc/pwpb/method_test.cc
+++ b/pw_rpc/pwpb/method_test.cc
@@ -363,8 +363,7 @@
std::array<byte, 128> encoded_request = {};
auto encoded = context.client_stream(request).Encode(encoded_request);
ASSERT_EQ(OkStatus(), encoded.status());
- ASSERT_EQ(OkStatus(),
- context.server().ProcessPacket(*encoded, context.output()));
+ ASSERT_EQ(OkStatus(), context.server().ProcessPacket(*encoded));
EXPECT_EQ(request_struct.integer, 1 << 30);
EXPECT_EQ(request_struct.status_code, 9u);
@@ -407,8 +406,7 @@
std::array<byte, 128> encoded_request = {};
auto encoded = context.client_stream(request).Encode(encoded_request);
ASSERT_EQ(OkStatus(), encoded.status());
- ASSERT_EQ(OkStatus(),
- context.server().ProcessPacket(*encoded, context.output()));
+ ASSERT_EQ(OkStatus(), context.server().ProcessPacket(*encoded));
EXPECT_EQ(request_struct.integer, 1 << 29);
EXPECT_EQ(request_struct.status_code, 8u);
diff --git a/pw_rpc/raw/method_test.cc b/pw_rpc/raw/method_test.cc
index ed2cd3a..0130ba0 100644
--- a/pw_rpc/raw/method_test.cc
+++ b/pw_rpc/raw/method_test.cc
@@ -242,8 +242,7 @@
auto encoded = context.client_stream(as_bytes(span(kRequestValue)))
.Encode(encoded_request);
ASSERT_EQ(OkStatus(), encoded.status());
- ASSERT_EQ(OkStatus(),
- context.server().ProcessPacket(*encoded, context.output()));
+ ASSERT_EQ(OkStatus(), context.server().ProcessPacket(*encoded));
EXPECT_STREQ(reinterpret_cast<const char*>(request.data()), kRequestValue);
}
diff --git a/pw_rpc/server.cc b/pw_rpc/server.cc
index cf7e73f..9ef2c29 100644
--- a/pw_rpc/server.cc
+++ b/pw_rpc/server.cc
@@ -33,8 +33,7 @@
} // namespace
-Status Server::ProcessPacket(ConstByteSpan packet_data,
- ChannelOutput* interface) {
+Status Server::ProcessPacket(ConstByteSpan packet_data) {
PW_TRY_ASSIGN(Packet packet,
Endpoint::ProcessPacket(packet_data, Packet::kServer));
@@ -51,15 +50,6 @@
internal::Channel* channel = GetInternalChannel(packet.channel_id());
if (channel == nullptr) {
- // If an interface was provided, respond with a SERVER_ERROR to indicate
- // that the channel is not available on this server. Don't send responses to
- // error messages, though, to avoid potential infinite cycles.
- if (interface != nullptr && packet.type() != PacketType::CLIENT_ERROR) {
- internal::Channel(packet.channel_id(), interface)
- .Send(Packet::ServerError(packet, Status::Unavailable()))
- .IgnoreError();
- }
-
internal::rpc_lock().unlock();
PW_LOG_WARN("RPC server received packet for unknown channel %u",
static_cast<unsigned>(packet.channel_id()));
diff --git a/pw_rpc/server_test.cc b/pw_rpc/server_test.cc
index 1c2e400..d69fa30 100644
--- a/pw_rpc/server_test.cc
+++ b/pw_rpc/server_test.cc
@@ -127,9 +127,9 @@
};
TEST_F(BasicServer, ProcessPacket_ValidMethodInService1_InvokesMethod) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 1, 100),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 1, 100)));
const TestMethod& method = service_1_.method(100);
EXPECT_EQ(1u, method.last_channel_id());
@@ -141,9 +141,9 @@
}
TEST_F(BasicServer, ProcessPacket_ValidMethodInService42_InvokesMethod) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 200),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 200)));
const TestMethod& method = service_42_.method(200);
EXPECT_EQ(1u, method.last_channel_id());
@@ -157,9 +157,9 @@
TEST_F(BasicServer, UnregisterService_CannotCallMethod) {
server_.UnregisterService(service_1_, service_42_);
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 1, 100),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 1, 100)));
const Packet& packet =
static_cast<internal::test::FakeChannelOutput&>(output_).last_packet();
@@ -174,9 +174,9 @@
server_.UnregisterService(service_42_, service_42_, service_42_);
server_.UnregisterService(service_42_);
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 1, 100),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 1, 100)));
const TestMethod& method = service_1_.method(100);
EXPECT_EQ(1u, method.last_channel_id());
@@ -188,48 +188,46 @@
}
TEST_F(BasicServer, ProcessPacket_IncompletePacket_NothingIsInvoked) {
+ EXPECT_EQ(
+ Status::DataLoss(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 0, 42, 101)));
+ EXPECT_EQ(
+ Status::DataLoss(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 0, 101)));
EXPECT_EQ(Status::DataLoss(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 0, 42, 101),
- output_));
- EXPECT_EQ(Status::DataLoss(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 0, 101),
- output_));
- EXPECT_EQ(Status::DataLoss(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 0),
- output_));
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 0)));
EXPECT_EQ(0u, service_42_.method(100).last_channel_id());
EXPECT_EQ(0u, service_42_.method(200).last_channel_id());
}
TEST_F(BasicServer, ProcessPacket_NoChannel_SendsNothing) {
- EXPECT_EQ(Status::DataLoss(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 0, 42, 101),
- output_));
+ EXPECT_EQ(
+ Status::DataLoss(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 0, 42, 101)));
EXPECT_EQ(output_.total_packets(), 0u);
}
TEST_F(BasicServer, ProcessPacket_NoService_SendsNothing) {
- EXPECT_EQ(Status::DataLoss(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 0, 101),
- output_));
+ EXPECT_EQ(
+ Status::DataLoss(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 0, 101)));
EXPECT_EQ(output_.total_packets(), 0u);
}
TEST_F(BasicServer, ProcessPacket_NoMethod_SendsNothing) {
EXPECT_EQ(Status::DataLoss(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 0),
- output_));
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 0)));
EXPECT_EQ(output_.total_packets(), 0u);
}
TEST_F(BasicServer, ProcessPacket_InvalidMethod_NothingIsInvoked) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 101),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 101)));
EXPECT_EQ(0u, service_42_.method(100).last_channel_id());
EXPECT_EQ(0u, service_42_.method(200).last_channel_id());
@@ -238,15 +236,15 @@
TEST_F(BasicServer, ProcessPacket_ClientErrorWithInvalidMethod_NoResponse) {
EXPECT_EQ(OkStatus(),
server_.ProcessPacket(
- EncodePacket(PacketType::CLIENT_ERROR, 1, 42, 101), output_));
+ EncodePacket(PacketType::CLIENT_ERROR, 1, 42, 101)));
EXPECT_EQ(0u, output_.total_packets());
}
TEST_F(BasicServer, ProcessPacket_InvalidMethod_SendsError) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 27),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 27)));
const Packet& packet =
static_cast<internal::test::FakeChannelOutput&>(output_).last_packet();
@@ -258,9 +256,9 @@
}
TEST_F(BasicServer, ProcessPacket_InvalidService_SendsError) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 43, 27),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 43, 27)));
const Packet& packet =
static_cast<internal::test::FakeChannelOutput&>(output_).last_packet();
@@ -277,37 +275,19 @@
EncodePacket(PacketType::REQUEST, /*channel_id=*/99, 42, 27)));
}
-TEST_F(BasicServer,
- ProcessPacket_UnassignedChannel_SendsUnavailableToProvidedInterface) {
- EXPECT_EQ(Status::Unavailable(),
- server_.ProcessPacket(
- EncodePacket(PacketType::REQUEST, /*channel_id=*/99, 42, 27),
- output_));
-
- const Packet& packet =
- static_cast<internal::test::FakeChannelOutput&>(output_).last_packet();
- EXPECT_EQ(packet.status(), Status::Unavailable());
- EXPECT_EQ(packet.channel_id(), 99u);
- EXPECT_EQ(packet.service_id(), 42u);
- EXPECT_EQ(packet.method_id(), 27u);
-}
-
TEST_F(BasicServer, ProcessPacket_ClientErrorOnUnassignedChannel_NoResponse) {
channels_[2] = Channel::Create<3>(&output_); // Occupy only available channel
- EXPECT_EQ(
- Status::Unavailable(),
- server_.ProcessPacket(
- EncodePacket(PacketType::CLIENT_ERROR, /*channel_id=*/99, 42, 27),
- output_));
+ EXPECT_EQ(Status::Unavailable(),
+ server_.ProcessPacket(EncodePacket(
+ PacketType::CLIENT_ERROR, /*channel_id=*/99, 42, 27)));
EXPECT_EQ(0u, output_.total_packets());
}
TEST_F(BasicServer, ProcessPacket_Cancel_MethodNotActive_SendsNothing) {
// Set up a fake ServerWriter representing an ongoing RPC.
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodeCancel(1, 42, 100), output_));
+ EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel(1, 42, 100)));
EXPECT_EQ(output_.total_packets(), 0u);
}
@@ -336,9 +316,9 @@
internal::TestMethod::FakeServerCall call;
service_42_.method(100).keep_call_active(call);
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 100),
- output_));
+ EXPECT_EQ(
+ OkStatus(),
+ server_.ProcessPacket(EncodePacket(PacketType::REQUEST, 1, 42, 100)));
Status on_error_status;
call.set_on_error(
@@ -359,10 +339,10 @@
TEST_F(BasicServer, OpenChannel_UnusedSlot) {
const span request = EncodePacket(PacketType::REQUEST, 9, 42, 100);
- EXPECT_EQ(Status::Unavailable(), server_.ProcessPacket(request, output_));
+ EXPECT_EQ(Status::Unavailable(), server_.ProcessPacket(request));
EXPECT_EQ(OkStatus(), server_.OpenChannel(9, output_));
- EXPECT_EQ(OkStatus(), server_.ProcessPacket(request, output_));
+ EXPECT_EQ(OkStatus(), server_.ProcessPacket(request));
const Packet& packet =
static_cast<internal::test::FakeChannelOutput&>(output_).last_packet();
@@ -411,28 +391,27 @@
ASSERT_EQ(method.invocations(), 0u);
EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(PacketForRpc(PacketType::REQUEST), output_));
+ server_.ProcessPacket(PacketForRpc(PacketType::REQUEST)));
EXPECT_EQ(cancelled, 1);
EXPECT_EQ(method.invocations(), 1u);
}
TEST_F(BidiMethod, Cancel_ClosesServerWriter) {
- EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel(), output_));
+ EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel()));
EXPECT_FALSE(responder_.active());
}
TEST_F(BidiMethod, Cancel_SendsNoResponse) {
- EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel(), output_));
+ EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel()));
EXPECT_EQ(output_.total_packets(), 0u);
}
TEST_F(BidiMethod, ClientError_ClosesServerWriterWithoutResponse) {
- ASSERT_EQ(
- OkStatus(),
- server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_ERROR), output_));
+ ASSERT_EQ(OkStatus(),
+ server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_ERROR)));
EXPECT_FALSE(responder_.active());
EXPECT_EQ(output_.total_packets(), 0u);
@@ -444,8 +423,7 @@
ASSERT_EQ(OkStatus(),
server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_ERROR,
- Status::Unauthenticated()),
- output_));
+ Status::Unauthenticated())));
EXPECT_EQ(status, Status::Unauthenticated());
}
@@ -454,28 +432,25 @@
Status status = Status::Unknown();
responder_.set_on_error([&status](Status error) { status = error; });
- ASSERT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel(), output_));
+ ASSERT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel()));
EXPECT_EQ(status, Status::Cancelled());
}
TEST_F(BidiMethod, Cancel_IncorrectChannel_SendsNothing) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodeCancel(2, 42, 100), output_));
+ EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel(2, 42, 100)));
EXPECT_EQ(output_.total_packets(), 0u);
EXPECT_TRUE(responder_.active());
}
TEST_F(BidiMethod, Cancel_IncorrectService_SendsNothing) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodeCancel(1, 43, 100), output_));
+ EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel(1, 43, 100)));
EXPECT_EQ(output_.total_packets(), 0u);
EXPECT_TRUE(responder_.active());
}
TEST_F(BidiMethod, Cancel_IncorrectMethod_SendsNothing) {
- EXPECT_EQ(OkStatus(),
- server_.ProcessPacket(EncodeCancel(1, 42, 101), output_));
+ EXPECT_EQ(OkStatus(), server_.ProcessPacket(EncodeCancel(1, 42, 101)));
EXPECT_EQ(output_.total_packets(), 0u);
EXPECT_TRUE(responder_.active());
}
@@ -486,7 +461,7 @@
ASSERT_EQ(OkStatus(),
server_.ProcessPacket(
- PacketForRpc(PacketType::CLIENT_STREAM, {}, "hello"), output_));
+ PacketForRpc(PacketType::CLIENT_STREAM, {}, "hello")));
EXPECT_EQ(output_.total_packets(), 0u);
EXPECT_STREQ(reinterpret_cast<const char*>(data.data()), "hello");
@@ -512,8 +487,7 @@
responder_.set_on_client_stream_end([&called]() { called = true; });
ASSERT_EQ(OkStatus(),
- server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_STREAM_END),
- output_));
+ server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_STREAM_END)));
EXPECT_EQ(output_.total_packets(), 0u);
EXPECT_TRUE(called);
@@ -521,12 +495,12 @@
TEST_F(BidiMethod, ClientStreamEnd_ErrorWhenClosed) {
const auto end = PacketForRpc(PacketType::CLIENT_STREAM_END);
- ASSERT_EQ(OkStatus(), server_.ProcessPacket(end, output_));
+ ASSERT_EQ(OkStatus(), server_.ProcessPacket(end));
bool called = false;
responder_.set_on_client_stream_end([&called]() { called = true; });
- ASSERT_EQ(OkStatus(), server_.ProcessPacket(end, output_));
+ ASSERT_EQ(OkStatus(), server_.ProcessPacket(end));
ASSERT_EQ(output_.total_packets(), 1u);
const Packet& packet =
@@ -554,9 +528,8 @@
};
TEST_F(ServerStreamingMethod, ClientStream_InvalidArgumentError) {
- ASSERT_EQ(
- OkStatus(),
- server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_STREAM), output_));
+ ASSERT_EQ(OkStatus(),
+ server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_STREAM)));
ASSERT_EQ(output_.total_packets(), 1u);
const Packet& packet =
@@ -567,8 +540,7 @@
TEST_F(ServerStreamingMethod, ClientStreamEnd_InvalidArgumentError) {
ASSERT_EQ(OkStatus(),
- server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_STREAM_END),
- output_));
+ server_.ProcessPacket(PacketForRpc(PacketType::CLIENT_STREAM_END)));
ASSERT_EQ(output_.total_packets(), 1u);
const Packet& packet =
diff --git a/pw_rpc/size_report/server_only.cc b/pw_rpc/size_report/server_only.cc
index 97c91f9..a8644f7 100644
--- a/pw_rpc/size_report/server_only.cc
+++ b/pw_rpc/size_report/server_only.cc
@@ -50,7 +50,7 @@
pw::sys_io::WriteBytes(packet_buffer)
.IgnoreError(); // TODO(b/242598609): Handle Status properly
- my_product::server.ProcessPacket(packet_buffer, my_product::output)
+ my_product::server.ProcessPacket(packet_buffer)
.IgnoreError(); // TODO(b/242598609): Handle Status properly
return static_cast<int>(packet_buffer[92]);
diff --git a/pw_system/hdlc_rpc_server.cc b/pw_system/hdlc_rpc_server.cc
index dc8ab2f..5bbcd83 100644
--- a/pw_system/hdlc_rpc_server.cc
+++ b/pw_system/hdlc_rpc_server.cc
@@ -70,7 +70,7 @@
if (auto result = decoder.Process(byte); result.ok()) {
hdlc::Frame& frame = result.value();
if (frame.address() == PW_SYSTEM_DEFAULT_RPC_HDLC_ADDRESS) {
- server.ProcessPacket(frame.data(), hdlc_channel_output);
+ server.ProcessPacket(frame.data());
}
}
}
diff --git a/targets/host/system_rpc_server.cc b/targets/host/system_rpc_server.cc
index a0f53d8..6de5567 100644
--- a/targets/host/system_rpc_server.cc
+++ b/targets/host/system_rpc_server.cc
@@ -95,7 +95,7 @@
continue;
}
- server.ProcessPacket(frame.data(), hdlc_channel_output).IgnoreError();
+ server.ProcessPacket(frame.data()).IgnoreError();
}
}
}