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