| OLD | NEW |
| (Empty) |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CHROME_BROWSER_POLICY_EXTERNAL_DATA_MANAGER_H_ | |
| 6 #define CHROME_BROWSER_POLICY_EXTERNAL_DATA_MANAGER_H_ | |
| 7 | |
| 8 #include <string> | |
| 9 | |
| 10 #include "chrome/browser/policy/external_data_fetcher.h" | |
| 11 | |
| 12 namespace policy { | |
| 13 | |
| 14 // Downloads, verifies, caches and retrieves external data referenced by | |
| 15 // policies. | |
| 16 // An implementation of this abstract interface should be provided for each | |
| 17 // policy source (cloud policy, platform policy) that supports external data | |
| 18 // references. | |
| 19 class ExternalDataManager { | |
| 20 public: | |
| 21 // Retrieves the external data referenced by |policy| and invokes |callback| | |
| 22 // with the result. If |policy| does not reference any external data, the | |
| 23 // |callback| is invoked with a NULL pointer. Otherwise, the |callback| is | |
| 24 // invoked with the referenced data once it has been successfully retrieved. | |
| 25 // If retrieval is temporarily impossible (e.g. no network connectivity), the | |
| 26 // |callback| will be invoked when the temporary hindrance is resolved. If | |
| 27 // retrieval is permanently impossible (e.g. |policy| references data that | |
| 28 // does not exist on the server), the |callback| will never be invoked. | |
| 29 virtual void Fetch(const std::string& policy, | |
| 30 const ExternalDataFetcher::FetchCallback& callback) = 0; | |
| 31 }; | |
| 32 | |
| 33 } // namespace policy | |
| 34 | |
| 35 #endif // CHROME_BROWSER_POLICY_EXTERNAL_DATA_MANAGER_H_ | |
| OLD | NEW |