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

// fidl_experiment = output_index_json

#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
