| // Copyright 2013 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef SYNC_ENGINE_GET_COMMIT_IDS_H_ | 
 | #define SYNC_ENGINE_GET_COMMIT_IDS_H_ | 
 |  | 
 | #include <stddef.h> | 
 | #include <stdint.h> | 
 |  | 
 | #include <vector> | 
 |  | 
 | #include "sync/base/sync_export.h" | 
 | #include "sync/internal_api/public/base/model_type.h" | 
 | #include "sync/syncable/directory.h" | 
 |  | 
 | using std::vector; | 
 |  | 
 | namespace syncer { | 
 |  | 
 | namespace syncable { | 
 | class BaseTransaction; | 
 | } | 
 |  | 
 | // Returns up to |max_entries| metahandles of entries that belong to the | 
 | // specified |type| and are ready for commit. | 
 | // | 
 | // This function returns handles in "commit order".  A valid commit ordering is | 
 | // one where server-unknown items are committed parents-first, and deletions | 
 | // are committed children-first. | 
 | // | 
 | // This function also enforces some position ordering constraints that are no | 
 | // longer necessary.  We should relax those constraints.  See crbug.com/287938. | 
 | SYNC_EXPORT void GetCommitIdsForType(syncable::BaseTransaction* trans, | 
 |                                      ModelType type, | 
 |                                      size_t max_entries, | 
 |                                      std::vector<int64_t>* out); | 
 |  | 
 | }  // namespace syncer | 
 |  | 
 | #endif  // SYNC_ENGINE_GET_COMMIT_IDS_H_ |