Home | History | Annotate | Download | only in engine
      1 // Copyright (c) 2006-2009 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_PROCESS_UPDATES_COMMAND_H_
      6 #define CHROME_BROWSER_SYNC_ENGINE_PROCESS_UPDATES_COMMAND_H_
      7 #pragma once
      8 
      9 #include "chrome/browser/sync/engine/model_changing_syncer_command.h"
     10 #include "chrome/browser/sync/engine/syncer_types.h"
     11 
     12 namespace syncable {
     13 class ScopedDirLookup;
     14 }
     15 
     16 namespace sync_pb {
     17 class SyncEntity;
     18 }
     19 
     20 namespace browser_sync {
     21 
     22 // A syncer command for processing updates.
     23 //
     24 // Preconditions - updates in the SyncerSesssion have been downloaded
     25 //                 and verified.
     26 //
     27 // Postconditions - All of the verified SyncEntity data will be copied to
     28 //                  the server fields of the corresponding syncable entries.
     29 // TODO(tim): This should not be ModelChanging (bug 36592).
     30 class ProcessUpdatesCommand : public ModelChangingSyncerCommand {
     31  public:
     32   ProcessUpdatesCommand();
     33   virtual ~ProcessUpdatesCommand();
     34 
     35   // ModelChangingSyncerCommand implementation.
     36   virtual bool ModelNeutralExecuteImpl(sessions::SyncSession* session);
     37   virtual void ModelChangingExecuteImpl(sessions::SyncSession* session);
     38 
     39  private:
     40   ServerUpdateProcessingResult ProcessUpdate(
     41       const syncable::ScopedDirLookup& dir,
     42       const sync_pb::SyncEntity& proto_update);
     43   DISALLOW_COPY_AND_ASSIGN(ProcessUpdatesCommand);
     44 };
     45 
     46 }  // namespace browser_sync
     47 
     48 #endif  // CHROME_BROWSER_SYNC_ENGINE_PROCESS_UPDATES_COMMAND_H_
     49