blob: 87c4151863cfeccf5df868b3f8acc6f6fc25bc2b [file] [log] [blame]
// Copyright 2022 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SRC_DA7219_CONTROLLER_I2C_SERVER_H_
#define SRC_DA7219_CONTROLLER_I2C_SERVER_H_
#include <fidl/fuchsia.hardware.i2c/cpp/wire.h>
#include <lib/driver2/logger.h>
namespace test_i2c_controller {
// FIDL server implementation for the `fuchsia.hardware.i2c/Device` protocol
class I2cDeviceServer : public fidl::WireServer<fuchsia_hardware_i2c::Device> {
public:
I2cDeviceServer(driver::Logger& logger) : logger_(logger) {}
static fidl::ServerBindingRef<fuchsia_hardware_i2c::Device> BindDeviceClient(
std::shared_ptr<I2cDeviceServer> server_impl, async_dispatcher_t* dispatcher,
fidl::ServerEnd<fuchsia_hardware_i2c::Device> request);
void OnUnbound(fidl::UnbindInfo info, fidl::ServerEnd<fuchsia_hardware_i2c::Device> server_end);
void Transfer(TransferRequestView request, TransferCompleter::Sync& completer) override;
private:
driver::Logger& logger_;
};
} // namespace test_i2c_controller
#endif // SRC_DA7219_CONTROLLER_I2C_SERVER_H_