| // Copyright 2019 The Chromium OS 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 TPM_MANAGER_CLIENT_TPM_OWNERSHIP_SIGNAL_HANDLER_H_ |
| #define TPM_MANAGER_CLIENT_TPM_OWNERSHIP_SIGNAL_HANDLER_H_ |
| |
| #include <string> |
| |
| #include "tpm_manager/proto_bindings/tpm_manager.pb.h" |
| |
| namespace tpm_manager { |
| |
| // |TpmOwnershipTakenSignalHandler| declares the abstract interfaces for users |
| // to implement the behavior upon receiving the ownership taken signal from |
| // |tpm_managerd|. |
| class TpmOwnershipTakenSignalHandler { |
| public: |
| TpmOwnershipTakenSignalHandler() = default; |
| virtual ~TpmOwnershipTakenSignalHandler() = default; |
| |
| // By design, this function is supposed to be called upon the signal is |
| // received. |signal| is the data sent along with the signal. |
| virtual void OnOwnershipTaken(const OwnershipTakenSignal& signal) = 0; |
| |
| // By design, this function is supposed to be called upon the dbus connection |
| // is connected, where |is_successful| indicates if the signal connection is |
| // successful. |interface_name| and the |signal_name| identify which signal |
| // connection triggers this callback. Currently they always refer to ownership |
| // taken signal. |
| virtual void OnSignalConnected(const std::string& interface_name, |
| const std::string& signal_name, |
| bool is_successful) = 0; |
| }; |
| |
| } // namespace tpm_manager |
| |
| #endif // TPM_MANAGER_CLIENT_TPM_OWNERSHIP_SIGNAL_HANDLER_H_ |