1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2006-2009 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#include "chrome/browser/sync/engine/resolve_conflicts_command.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
7c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/engine/conflict_resolver.h"
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/sessions/sync_session.h"
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/sync/syncable/directory_manager.h"
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace browser_sync {
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochResolveConflictsCommand::ResolveConflictsCommand() {}
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochResolveConflictsCommand::~ResolveConflictsCommand() {}
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochvoid ResolveConflictsCommand::ModelChangingExecuteImpl(
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    sessions::SyncSession* session) {
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  ConflictResolver* resolver = session->context()->resolver();
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DCHECK(resolver);
20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if (!resolver)
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    return;
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  syncable::ScopedDirLookup dir(session->context()->directory_manager(),
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch                                session->context()->account_name());
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if (!dir.good())
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    return;
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  sessions::StatusController* status = session->status_controller();
28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  status->update_conflicts_resolved(resolver->ResolveConflicts(dir, status));
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace browser_sync
32