diff options
author | danno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-29 09:20:03 +0000 |
---|---|---|
committer | danno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-29 09:20:03 +0000 |
commit | 2a87dce080ab4f09a180e9e6881a85ac9e8aedde (patch) | |
tree | c1d960efade31be45b7b7ba30532af14279d4bda /chrome/browser/policy/device_management_backend.h | |
parent | dc7bec0219a6d54cadf530786907bc72c6b31268 (diff) | |
download | chromium_src-2a87dce080ab4f09a180e9e6881a85ac9e8aedde.zip chromium_src-2a87dce080ab4f09a180e9e6881a85ac9e8aedde.tar.gz chromium_src-2a87dce080ab4f09a180e9e6881a85ac9e8aedde.tar.bz2 |
Implement device token fetcher
First step in mechanism for fetching cloud-based policy for CrOS.
BUG=none
TEST=DeviceTokenFetcher*
Review URL: http://codereview.chromium.org/4121003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64388 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/policy/device_management_backend.h')
-rw-r--r-- | chrome/browser/policy/device_management_backend.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/chrome/browser/policy/device_management_backend.h b/chrome/browser/policy/device_management_backend.h new file mode 100644 index 0000000..25c7b1b --- /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_ |