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

#pragma once

#include <test/anonymous/cpp/fidl.h>
namespace test {
namespace anonymous {
namespace testing {
class SomeProtocol_TestBase : public ::test::anonymous::SomeProtocol {
 public:
  virtual ~SomeProtocol_TestBase() {}
  virtual void NotImplemented_(const std::string& name) = 0;
  void SomeMethod(::test::anonymous::UnionMember union_member, ::test::anonymous::TableMember table_member, SomeMethodCallback callback) override {
    NotImplemented_("SomeMethod");
  }
};
}  // namespace testing
}  // namespace anonymous
}  // namespace test
