history_model_worker.h revision dc0f95d653279beabeb9817299e2902918ba123e
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_SYNC_GLUE_HISTORY_MODEL_WORKER_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_SYNC_GLUE_HISTORY_MODEL_WORKER_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/engine/model_safe_worker.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/callback.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/ref_counted.h" 14dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/cancelable_request.h" 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass HistoryService; 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace base { 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass WaitableEvent; 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace browser_sync { 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// A ModelSafeWorker for history models that accepts requests 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// from the syncapi that need to be fulfilled on the history thread. 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass HistoryModelWorker : public browser_sync::ModelSafeWorker, 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public CancelableRequestConsumerBase { 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch explicit HistoryModelWorker(HistoryService* history_service); 303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick virtual ~HistoryModelWorker(); 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // ModelSafeWorker implementation. Called on syncapi SyncerThread. 3321d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual void DoWorkAndWaitUntilDone(Callback0::Type* work); 3421d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen virtual ModelSafeGroup GetModelSafeGroup(); 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual bool CurrentThreadIsWorkThread(); 36c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // CancelableRequestConsumerBase implementation. 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void OnRequestAdded(CancelableRequestProvider* provider, 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch CancelableRequestProvider::Handle handle) {} 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void OnRequestRemoved(CancelableRequestProvider* provider, 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch CancelableRequestProvider::Handle handle) {} 433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick virtual void WillExecute(CancelableRequestProvider* provider, 453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick CancelableRequestProvider::Handle handle) {} 463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick virtual void DidExecute(CancelableRequestProvider* provider, 483345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick CancelableRequestProvider::Handle handle) {} 493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_refptr<HistoryService> history_service_; 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(HistoryModelWorker); 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace browser_sync 56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_SYNC_GLUE_HISTORY_MODEL_WORKER_H_ 58