| Index: chrome/browser/policy/device_management_backend.h
|
| diff --git a/chrome/browser/policy/device_management_backend.h b/chrome/browser/policy/device_management_backend.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..25c7b1bcba4865624bcdfec07c3b6ac233bf05a9
|
| --- /dev/null
|
| +++ b/chrome/browser/policy/device_management_backend.h
|
| @@ -0,0 +1,114 @@
|
| +// Copyright (c) 2010 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 CHROME_BROWSER_POLICY_DEVICE_MANAGEMENT_BACKEND_H_
|
| +#define CHROME_BROWSER_POLICY_DEVICE_MANAGEMENT_BACKEND_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "base/non_thread_safe.h"
|
| +#include "chrome/browser/policy/proto/device_management_backend.pb.h"
|
| +
|
| +namespace policy {
|
| +
|
| +namespace em = enterprise_management;
|
| +
|
| +// Interface for clients that need to converse with the device management
|
| +// server, which provides services to register Chrome installations and CrOS
|
| +// devices for the purpose of fetching centrally-administered policy from the
|
| +// cloud.
|
| +class DeviceManagementBackend : NonThreadSafe {
|
| + public:
|
| + enum ErrorCode {
|
| + // Request payload invalid.
|
| + kErrorRequestInvalid,
|
| + // The HTTP request failed.
|
| + kErrorRequestFailed,
|
| + // The HTTP request returned a non-success code.
|
| + kErrorHttpStatus,
|
| + // Response could not be decoded.
|
| + kErrorResponseDecoding,
|
| + // Service error: Management not supported.
|
| + kErrorServiceManagementNotSupported,
|
| + // Service error: Device not found.
|
| + kErrorServiceDeviceNotFound,
|
| + // Service error: Device token invalid.
|
| + kErrorServiceManagementTokenInvalid,
|
| + // Service error: Activation pending.
|
| + kErrorServiceActivationPending,
|
| + };
|
| +
|
| + class DeviceRegisterResponseDelegate {
|
| + public:
|
| + virtual ~DeviceRegisterResponseDelegate() {}
|
| + virtual void HandleRegisterResponse(
|
| + const em::DeviceRegisterResponse& response) = 0;
|
| + virtual void OnError(ErrorCode code) = 0;
|
| +
|
| + protected:
|
| + DeviceRegisterResponseDelegate() {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DeviceRegisterResponseDelegate);
|
| + };
|
| +
|
| + class DeviceUnregisterResponseDelegate {
|
| + public:
|
| + virtual ~DeviceUnregisterResponseDelegate() {}
|
| + virtual void HandleUnregisterResponse(
|
| + const em::DeviceUnregisterResponse& response) = 0;
|
| + virtual void OnError(ErrorCode code) = 0;
|
| +
|
| + protected:
|
| + DeviceUnregisterResponseDelegate() {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DeviceUnregisterResponseDelegate);
|
| + };
|
| +
|
| + class DevicePolicyResponseDelegate {
|
| + public:
|
| + virtual ~DevicePolicyResponseDelegate() {}
|
| +
|
| + virtual void HandlePolicyResponse(
|
| + const em::DevicePolicyResponse& response) = 0;
|
| + virtual void OnError(ErrorCode code) = 0;
|
| +
|
| + protected:
|
| + DevicePolicyResponseDelegate() {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DevicePolicyResponseDelegate);
|
| + };
|
| +
|
| + virtual ~DeviceManagementBackend() {}
|
| +
|
| + virtual void ProcessRegisterRequest(
|
| + const std::string& auth_token,
|
| + const std::string& device_id,
|
| + const em::DeviceRegisterRequest& request,
|
| + DeviceRegisterResponseDelegate* delegate) = 0;
|
| +
|
| + virtual void ProcessUnregisterRequest(
|
| + const std::string& device_management_token,
|
| + const em::DeviceUnregisterRequest& request,
|
| + DeviceUnregisterResponseDelegate* delegate) = 0;
|
| +
|
| + virtual void ProcessPolicyRequest(
|
| + const std::string& device_management_token,
|
| + const em::DevicePolicyRequest& request,
|
| + DevicePolicyResponseDelegate* delegate) = 0;
|
| +
|
| + protected:
|
| + DeviceManagementBackend() {}
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(DeviceManagementBackend);
|
| +};
|
| +
|
| +} // namespace policy
|
| +
|
| +#endif // CHROME_BROWSER_POLICY_DEVICE_MANAGEMENT_BACKEND_H_
|
|
|