| Index: components/arc/opt_in/arc_opt_in_manager.h
|
| diff --git a/components/arc/opt_in/arc_opt_in_manager.h b/components/arc/opt_in/arc_opt_in_manager.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..302e88526d016e3f091acc4b43940107d73840de
|
| --- /dev/null
|
| +++ b/components/arc/opt_in/arc_opt_in_manager.h
|
| @@ -0,0 +1,58 @@
|
| +// Copyright 2016 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_ARC_OPT_IN_ARC_OPT_IN_MANAGER_H_
|
| +#define COMPONENTS_ARC_OPT_IN_ARC_OPT_IN_MANAGER_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/macros.h"
|
| +
|
| +class Profile;
|
| +
|
| +namespace arc {
|
| +
|
| +class ArcOptInManager {
|
| + public:
|
| + enum class State {
|
| + DISABLE, // ARC is not allowed to run (default).
|
| + FETCHING_TOKEN, // ARC is allowed, receiving auth_2 token.
|
| + NO_TOKEN, // ARC is allowed, auth_2 token was not received.
|
| + ENABLE, // ARC is allowed, auth_2 token was received.
|
| + };
|
| +
|
| + class Observer {
|
| + public:
|
| + // Called whenever Opt-In state of the ARC has been changed.
|
| + virtual void OnOptInChanged(State state) = 0;
|
| + };
|
| +
|
| + virtual ~ArcOptInManager() {}
|
| +
|
| + virtual void SetProfile(Profile* profile) = 0;
|
| +
|
| + virtual State state() const = 0;
|
| +
|
| + // Sets the auth token. Can be set from internally or from external component
|
| + // that accepts user's credentials. This actually starts ARC bridge service.
|
| + virtual void SetAuthTokenAndStartArc(const std::string auth_token) = 0;
|
| +
|
| + // Returns the auth token. For security reason this token can be used only
|
| + // once and exists for specific period of time.
|
| + virtual std::string GetAuthToken() = 0;
|
| +
|
| + // Adds or removes observers.
|
| + virtual void AddObserver(Observer* observer) = 0;
|
| + virtual void RemoveObserver(Observer* observer) = 0;
|
| +
|
| + protected:
|
| + ArcOptInManager() {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(ArcOptInManager);
|
| +};
|
| +
|
| +} // namespace arc
|
| +
|
| +#endif // COMPONENTS_ARC_OPT_IN_ARC_OPT_IN_MANAGER_H_
|
|
|