blob: 433d9185f031899e5a2051f160aa5135092ff1b3 [file] [log] [blame]
// Copyright 2023 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_DRIVERS_PCF8563_PCF8563_SERVER_H_
#define SRC_DRIVERS_PCF8563_PCF8563_SERVER_H_
#include <fidl/fuchsia.hardware.rtc/cpp/fidl.h>
#include "pcf8563.h"
namespace pcf8563 {
class RtcDriver;
class RtcServer : public fidl::Server<fuchsia_hardware_rtc::Device> {
public:
explicit RtcServer(RtcDriver* device) : device_(device) {}
fuchsia_hardware_rtc::Service::InstanceHandler GetInstanceHandler();
// fuchsia_hardware_rtc::Device protocol.
void Get(GetCompleter::Sync& completer) override;
void Set(SetRequest& req, SetCompleter::Sync& completer) override;
void handle_unknown_method(fidl::UnknownMethodMetadata<fuchsia_hardware_rtc::Device> metadata,
fidl::UnknownMethodCompleter::Sync& completer) override {} // No-op
void OnUnbound(fidl::UnbindInfo info, fidl::ServerEnd<fuchsia_hardware_rtc::Device> server_end);
fidl::ServerBindingGroup<fuchsia_hardware_rtc::Device>& bindings() { return bindings_; }
private:
RtcDriver* device_; // Must outlive this class.
fidl::ServerBindingGroup<fuchsia_hardware_rtc::Device> bindings_;
};
} // namespace pcf8563
#endif // SRC_DRIVERS_PCF8563_PCF8563_SERVER_H_