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

// fidl_experiment = output_index_json

#pragma once

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

class ExampleProtocol_TestBase : public ::test::placementofattributes::ExampleProtocol {
 public:
  virtual ~ExampleProtocol_TestBase() {}
  virtual void NotImplemented_(const std::string& name) = 0;
  void Method(::test::exampleusing::Empty arg) override {
    NotImplemented_("Method");
  }
};
}  // namespace testing
}  // namespace placementofattributes
}  // namespace test
