1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
3bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen// found in the LICENSE file.
4bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
5bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#ifndef CHROME_BROWSER_SYNC_GLUE_APP_DATA_TYPE_CONTROLLER_H_
6bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#define CHROME_BROWSER_SYNC_GLUE_APP_DATA_TYPE_CONTROLLER_H_
7bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#pragma once
8bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
9bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#include <string>
10bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/sync/glue/frontend_data_type_controller.h"
12bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
13bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsennamespace browser_sync {
14bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass AppDataTypeController : public FrontendDataTypeController {
16bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen public:
17bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  AppDataTypeController(
18bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen      ProfileSyncFactory* profile_sync_factory,
19bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen      Profile* profile,
20bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen      ProfileSyncService* sync_service);
21bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  virtual ~AppDataTypeController();
22bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
23bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  // DataTypeController implementation.
24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual syncable::ModelType type() const;
25bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private:
27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // DataTypeController implementations.
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool StartModels();
29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void CreateSyncComponents();
30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void RecordUnrecoverableError(
31bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen      const tracked_objects::Location& from_here,
32bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen      const std::string& message);
33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void RecordAssociationTime(base::TimeDelta time);
34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void RecordStartFailure(StartResult result);
35bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
36bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen  DISALLOW_COPY_AND_ASSIGN(AppDataTypeController);
37bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen};
38bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
39bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen}  // namespace browser_sync
40bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen
41bda42a81ee5f9b20d2bebedcf0bbef1e30e5b293Kristian Monsen#endif  // CHROME_BROWSER_SYNC_GLUE_APP_DATA_TYPE_CONTROLLER_H_
42