// WARNING: This file is machine generated by fidlgen.

#pragma once

#include <fidl/test/emptystruct/cpp/fidl.h>
namespace fidl {
namespace test {
namespace emptystruct {
namespace testing {

class EmptyProtocol_TestBase : public EmptyProtocol {
 public:
  virtual ~EmptyProtocol_TestBase() {}
  virtual void NotImplemented_(const std::string& name) = 0;
  void Send(::fidl::test::emptystruct::Empty e) override {
    NotImplemented_("Send");
  }
  void SendAndReceive(::fidl::test::emptystruct::Empty e,
                      SendAndReceiveCallback callback) override {
    NotImplemented_("SendAndReceive");
  }
};
}  // namespace testing
}  // namespace emptystruct
}  // namespace test
}  // namespace fidl
