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_UNRECOVERABLE_ERROR_HANDLER_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_SYNC_UNRECOVERABLE_ERROR_HANDLER_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string>
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/tracked.h"
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace browser_sync {
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass UnrecoverableErrorHandler {
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Call this when normal operation detects that the chrome model and the
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // syncer model are inconsistent, or similar.  The ProfileSyncService will
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // try to avoid doing any work to avoid crashing or corrupting things
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // further, and will report an error status if queried.
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual void OnUnrecoverableError(const tracked_objects::Location& from_here,
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                                    const std::string& message) = 0;
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected:
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  virtual ~UnrecoverableErrorHandler() { }
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // CHROME_BROWSER_SYNC_UNRECOVERABLE_ERROR_HANDLER_H_
30