1cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com// Use of this source code is governed by a BSD-style license that can be
3cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com// found in the LICENSE file.
4cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
5cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com#ifndef CHROME_BROWSER_SYNC_GLUE_EXTENSION_DATA_TYPE_CONTROLLER_H_
6cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com#define CHROME_BROWSER_SYNC_GLUE_EXTENSION_DATA_TYPE_CONTROLLER_H_
7cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
8cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com#include <string>
9cf2cfa174ca878c144e17e9fc60ca8e9070d7dededisonn@google.com
108cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com#include "base/compiler_specific.h"
118cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com#include "components/sync_driver/generic_change_processor.h"
128cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com#include "components/sync_driver/ui_data_type_controller.h"
138cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
148cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.comclass Profile;
158cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
168cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.comnamespace browser_sync {
178cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
188cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com// TODO(zea): Rename this and ExtensionSettingsDTC to ExtensionOrApp*, since
198cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com// both actually handle the APP datatypes as well.
208cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.comclass ExtensionDataTypeController : public sync_driver::UIDataTypeController {
218cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com public:
228cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  ExtensionDataTypeController(
238cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com      syncer::ModelType type,  // Either EXTENSIONS or APPS.
248cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com      sync_driver::SyncApiComponentFactory* sync_factory,
258cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com      Profile* profile);
268cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
278cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com private:
288cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  virtual ~ExtensionDataTypeController();
298cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
308cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  // DataTypeController implementations.
318cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  virtual bool StartModels() OVERRIDE;
328cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
338cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  Profile* const profile_;
348cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
358cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com  DISALLOW_COPY_AND_ASSIGN(ExtensionDataTypeController);
368cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com};
378cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
388cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com}  // namespace browser_sync
398cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com
408cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com#endif  // CHROME_BROWSER_SYNC_GLUE_EXTENSION_DATA_TYPE_CONTROLLER_H_
418cee797901763ab0922eb9ef484cfdcbc94bee54edisonn@google.com