pw_rpc: Isolate pw_rpc server from proto library
- Completely isolate the pw_rpc server library from the protobuf
implementation. The core pw_rpc server code compiles the same
regardless of which method implementations are used. This opens up the
possibility of using different protobuf libraries in the same server.
- No longer get pw_rpc/internal/method.h from the protobuf library
implementation. Rename pw_rpc/internal/base_method.h to
pw_rpc/internal/method.h and BaseMethod to Method.
- Rename the Nanopb method implementation to NanopbMethod and the test
implementation to TestMethod.
Change-Id: I173edf75202159d3ce737f8029c9dc4a580f2cbe
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/18241
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
diff --git a/pw_rpc/service_test.cc b/pw_rpc/service_test.cc
index 2fadec7..107ad78 100644
--- a/pw_rpc/service_test.cc
+++ b/pw_rpc/service_test.cc
@@ -15,27 +15,27 @@
#include "pw_rpc/service.h"
#include "gtest/gtest.h"
-#include "pw_rpc/internal/base_method.h"
+#include "pw_rpc/internal/method.h"
namespace pw::rpc {
class ServiceTestHelper {
public:
- static const internal::BaseMethod* FindMethod(Service& service, uint32_t id) {
+ static const internal::Method* FindMethod(Service& service, uint32_t id) {
return service.FindMethod(id);
}
};
namespace {
-void InvokeIt(const internal::BaseMethod&,
+void InvokeIt(const internal::Method&,
internal::ServerCall&,
const internal::Packet&) {}
-class ServiceTestMethod : public internal::BaseMethod {
+class ServiceTestMethod : public internal::Method {
public:
constexpr ServiceTestMethod(uint32_t id, char the_value)
- : internal::BaseMethod(id, InvokeIt), value(the_value) {}
+ : internal::Method(id, InvokeIt), value(the_value) {}
char value; // Add a member so the class is larger than the base Method.
};