pw_rpc: Split public and internal interfaces
- Make an internal version of Server, which will expose functions for
working with Reader/Writer objects
- Make an internal version of Channel, which provides an interface for
sending packets.
- Define the Channel::OutputBuffer class for handling buffers acquired
from a ChannelOutput.
Change-Id: Ieea29c1392726cd2eb15008e19004cde05c7f43b
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/12160
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
diff --git a/pw_rpc/BUILD.gn b/pw_rpc/BUILD.gn
index 1d3bcde..2cc9a8f 100644
--- a/pw_rpc/BUILD.gn
+++ b/pw_rpc/BUILD.gn
@@ -55,6 +55,7 @@
sources = [
"base_server_writer.cc",
"public/pw_rpc/internal/base_server_writer.h",
+ "public/pw_rpc/internal/server.h",
"public/pw_rpc/internal/service.h",
"server.cc",
"service.cc",
@@ -94,6 +95,7 @@
public_deps = [
":protos_pwpb",
dir_pw_assert,
+ dir_pw_log,
dir_pw_span,
dir_pw_status,
]
@@ -103,6 +105,7 @@
"packet.cc",
"public/pw_rpc/internal/base_method.h",
"public/pw_rpc/internal/call.h",
+ "public/pw_rpc/internal/channel.h",
"public/pw_rpc/internal/packet.h",
]
friend = [ "./*" ]
@@ -131,9 +134,10 @@
pw_test_group("tests") {
tests = [
":base_server_writer_test",
- "nanopb:method_test",
+ ":channel_test",
":packet_test",
":server_test",
+ "nanopb:method_test",
]
}
@@ -156,6 +160,14 @@
sources = [ "base_server_writer_test.cc" ]
}
+pw_test("channel_test") {
+ deps = [
+ ":common",
+ ":test_utils_test_server",
+ ]
+ sources = [ "channel_test.cc" ]
+}
+
pw_test("packet_test") {
deps = [
":common",