1// Copyright (c) 2010 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_SYNC_ENGINE_STORE_TIMESTAMPS_COMMAND_H_
6#define CHROME_BROWSER_SYNC_ENGINE_STORE_TIMESTAMPS_COMMAND_H_
7#pragma once
8
9#include "chrome/browser/sync/engine/syncer_command.h"
10#include "chrome/browser/sync/engine/syncer_types.h"
11
12namespace browser_sync {
13
14// A syncer command that extracts the changelog timestamp information from
15// a GetUpdatesResponse (fetched in DownloadUpdatesCommand) and stores
16// it in the directory.  This is meant to run immediately after
17// ProcessUpdatesCommand.
18//
19// Preconditions - all updates in the SyncerSesssion have been stored in the
20//                 database, meaning it is safe to update the persisted
21//                 timestamps.
22//
23// Postconditions - The next_timestamp returned by the server will be
24//                  saved into the directory (where it will be used
25//                  the next time that DownloadUpdatesCommand runs).
26class StoreTimestampsCommand : public SyncerCommand {
27 public:
28  StoreTimestampsCommand();
29  virtual ~StoreTimestampsCommand();
30
31  // SyncerCommand implementation.
32  virtual void ExecuteImpl(sessions::SyncSession* session);
33
34 private:
35  DISALLOW_COPY_AND_ASSIGN(StoreTimestampsCommand);
36};
37
38}  // namespace browser_sync
39
40#endif  // CHROME_BROWSER_SYNC_ENGINE_STORE_TIMESTAMPS_COMMAND_H_
41