aboutsummaryrefslogtreecommitdiff
path: root/pw_log_rpc
diff options
context:
space:
mode:
authorWyatt Hepler <hepler@google.com>2022-01-19 13:55:31 -0800
committerCQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-01-20 22:21:45 +0000
commit4adef6fa36c9f9222165e35cadb9e92e3d99477e (patch)
tree1e0a64d00208d549d8fa5356507f35abe297bbef /pw_log_rpc
parent6d1555ddaa5bd6da49b80fbf4b46f88e82e52ebb (diff)
downloadpigweed-4adef6fa36c9f9222165e35cadb9e92e3d99477e.tar.gz
pw_rpc: Remove PayloadBuffer() from the public API
The PayloadBuffer() function will be removed. ChannelOutput buffers will only be used internally by the RPC system. This removes PayloadBuffer() from the public API and exposes it only to its current upstream users. Bug: 605 Change-Id: I54606d55711e8d24d6d0489a6b9f0c2b7871d7c1 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/79800 Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com> Reviewed-by: Alexei Frolov <frolv@google.com> Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Diffstat (limited to 'pw_log_rpc')
-rw-r--r--pw_log_rpc/rpc_log_drain.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/pw_log_rpc/rpc_log_drain.cc b/pw_log_rpc/rpc_log_drain.cc
index 2f1003c3c..52efe6f63 100644
--- a/pw_log_rpc/rpc_log_drain.cc
+++ b/pw_log_rpc/rpc_log_drain.cc
@@ -30,6 +30,14 @@ Result<ConstByteSpan> CreateEncodedDropMessage(
PW_TRY(encoder.status());
return ConstByteSpan(encoder);
}
+
+// TODO(pwbug/605): Remove this hack for accessing the PayloadBuffer() API.
+class AccessHiddenFunctions : public rpc::RawServerWriter {
+ public:
+ using RawServerWriter::PayloadBuffer;
+ using RawServerWriter::ReleaseBuffer;
+};
+
} // namespace
Status RpcLogDrain::Open(rpc::RawServerWriter& writer) {
@@ -53,7 +61,8 @@ Status RpcLogDrain::Flush() {
if (!server_writer_.active()) {
return Status::Unavailable();
}
- log::LogEntries::MemoryEncoder encoder(server_writer_.PayloadBuffer());
+ log::LogEntries::MemoryEncoder encoder(
+ static_cast<AccessHiddenFunctions&>(server_writer_).PayloadBuffer());
uint32_t packed_entry_count = 0;
log_sink_state = EncodeOutgoingPacket(encoder, packed_entry_count);
// Avoid sending empty packets.
@@ -61,7 +70,7 @@ Status RpcLogDrain::Flush() {
// Release buffer when still active to keep the writer in a replaceable
// state.
if (server_writer_.active()) {
- server_writer_.ReleaseBuffer();
+ static_cast<AccessHiddenFunctions&>(server_writer_).ReleaseBuffer();
}
continue;
}