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

#pragma once

#include <test/requestflexibleenvelope/cpp/fidl.h>
namespace test {
namespace requestflexibleenvelope {
namespace testing {
class Protocol_TestBase : public ::test::requestflexibleenvelope::Protocol {
 public:
  virtual ~Protocol_TestBase() {}
  virtual void NotImplemented_(const std::string& name) = 0;
  void RequestStrictResponseFlexible(::test::requestflexibleenvelope::StrictFoo s, RequestStrictResponseFlexibleCallback callback) override {
    NotImplemented_("RequestStrictResponseFlexible");
  }
  void RequestFlexibleResponseStrict(::test::requestflexibleenvelope::FlexibleFoo s, RequestFlexibleResponseStrictCallback callback) override {
    NotImplemented_("RequestFlexibleResponseStrict");
  }
};
}  // namespace testing
}  // namespace requestflexibleenvelope
}  // namespace test
