| // Copyright 2018 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 PERIDOT_BIN_LEDGER_P2P_PROVIDER_PUBLIC_USER_ID_PROVIDER_H_ |
| #define PERIDOT_BIN_LEDGER_P2P_PROVIDER_PUBLIC_USER_ID_PROVIDER_H_ |
| |
| #include <lib/fit/function.h> |
| #include <lib/fxl/macros.h> |
| |
| namespace p2p_provider { |
| // UserIdProvider abstracts the unique User ID shared accross all devices of a |
| // user and used to establish a connection. |
| class UserIdProvider { |
| public: |
| enum class Status { |
| OK, |
| ERROR, |
| }; |
| |
| UserIdProvider() {} |
| virtual ~UserIdProvider() {} |
| |
| // GetUserId calls its callback with the user id. |
| virtual void GetUserId(fit::function<void(Status, std::string)> callback) = 0; |
| |
| private: |
| FXL_DISALLOW_COPY_AND_ASSIGN(UserIdProvider); |
| }; |
| |
| } // namespace p2p_provider |
| |
| #endif // PERIDOT_BIN_LEDGER_P2P_PROVIDER_PUBLIC_USER_ID_PROVIDER_H_ |