| // Copyright 2023 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef PRINTSCANMGR_DAEMON_DBUS_ADAPTOR_H_ |
| #define PRINTSCANMGR_DAEMON_DBUS_ADAPTOR_H_ |
| |
| #include <base/memory/scoped_refptr.h> |
| #include <brillo/dbus/async_event_sequencer.h> |
| #include <brillo/dbus/dbus_object.h> |
| #include <brillo/errors/error.h> |
| #include <dbus/bus.h> |
| #include <printscanmgr/proto_bindings/printscanmgr_service.pb.h> |
| |
| #include "printscanmgr/daemon/cups_tool.h" |
| #include "printscanmgr/dbus_adaptors/org.chromium.printscanmgr.h" |
| |
| namespace printscanmgr { |
| |
| // Implementation of org::chromium::printscanmgrInterface. |
| class DbusAdaptor final : public org::chromium::printscanmgrAdaptor, |
| public org::chromium::printscanmgrInterface { |
| public: |
| explicit DbusAdaptor(scoped_refptr<dbus::Bus> bus); |
| DbusAdaptor(const DbusAdaptor&) = delete; |
| DbusAdaptor& operator=(const DbusAdaptor&) = delete; |
| ~DbusAdaptor() override; |
| |
| // Registers the D-Bus object and interface. |
| void RegisterAsync(brillo::dbus_utils::AsyncEventSequencer::CompletionAction |
| completion_action); |
| |
| // org::chromium::printscanmgrInterface overrides: |
| CupsAddAutoConfiguredPrinterResponse CupsAddAutoConfiguredPrinter( |
| const CupsAddAutoConfiguredPrinterRequest& request) override; |
| CupsAddManuallyConfiguredPrinterResponse CupsAddManuallyConfiguredPrinter( |
| const CupsAddManuallyConfiguredPrinterRequest& request) override; |
| CupsRemovePrinterResponse CupsRemovePrinter( |
| const CupsRemovePrinterRequest& request) override; |
| CupsRetrievePpdResponse CupsRetrievePpd( |
| const CupsRetrievePpdRequest& request) override; |
| PrintscanDebugSetCategoriesResponse PrintscanDebugSetCategories( |
| const PrintscanDebugSetCategoriesRequest& request) override; |
| |
| private: |
| brillo::dbus_utils::DBusObject dbus_object_; |
| CupsTool cups_tool_; |
| }; |
| |
| } // namespace printscanmgr |
| |
| #endif // PRINTSCANMGR_DAEMON_DBUS_ADAPTOR_H_ |