// Copyright 2014 The Chromium 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 COMPONENTS_PROXIMITY_AUTH_CRYPTAUTH_CLIENT_H #define COMPONENTS_PROXIMITY_AUTH_CRYPTAUTH_CLIENT_H #include "base/callback_forward.h" #include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "components/proximity_auth/cryptauth/proto/cryptauth_api.pb.h" namespace net { class URLRequestContextGetter; } namespace proximity_auth { class CryptAuthAccessTokenFetcher; class CryptAuthApiCallFlow; // Interface for making API requests to the CryptAuth service, which // manages cryptographic credentials (ie. public keys) for a user's devices. // Implmentations shall only processes a single request, so create a new // instance for each request you make. DO NOT REUSE. // For documentation on each API call, see // components/proximity_auth/cryptauth/proto/cryptauth_api.proto class CryptAuthClient { public: typedef base::Callback ErrorCallback; virtual ~CryptAuthClient() {} // GetMyDevices typedef base::Callback GetMyDevicesCallback; virtual void GetMyDevices(const cryptauth::GetMyDevicesRequest& request, const GetMyDevicesCallback& callback, const ErrorCallback& error_callback) = 0; // FindEligibleUnlockDevices typedef base::Callback FindEligibleUnlockDevicesCallback; virtual void FindEligibleUnlockDevices( const cryptauth::FindEligibleUnlockDevicesRequest& request, const FindEligibleUnlockDevicesCallback& callback, const ErrorCallback& error_callback) = 0; // SendDeviceSyncTickle typedef base::Callback SendDeviceSyncTickleCallback; virtual void SendDeviceSyncTickle( const cryptauth::SendDeviceSyncTickleRequest& request, const SendDeviceSyncTickleCallback& callback, const ErrorCallback& error_callback) = 0; // ToggleEasyUnlock typedef base::Callback ToggleEasyUnlockCallback; virtual void ToggleEasyUnlock( const cryptauth::ToggleEasyUnlockRequest& request, const ToggleEasyUnlockCallback& callback, const ErrorCallback& error_callback) = 0; // SetupEnrollment typedef base::Callback SetupEnrollmentCallback; virtual void SetupEnrollment(const cryptauth::SetupEnrollmentRequest& request, const SetupEnrollmentCallback& callback, const ErrorCallback& error_callback) = 0; // FinishEnrollment typedef base::Callback FinishEnrollmentCallback; virtual void FinishEnrollment( const cryptauth::FinishEnrollmentRequest& request, const FinishEnrollmentCallback& callback, const ErrorCallback& error_callback) = 0; }; // Interface for creating CryptAuthClient instances. Because each // CryptAuthClient instance can only be used for one API call, a factory makes // it easier to make multiple requests in sequence or in parallel. class CryptAuthClientFactory { public: virtual ~CryptAuthClientFactory() {} virtual scoped_ptr CreateInstance() = 0; }; } // namespace proximity_auth #endif // COMPONENTS_PROXIMITY_AUTH_CRYPTAUTH_CLIENT_H