OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sync/engine/get_commit_ids.h" | 5 #include "sync/engine/get_commit_ids.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
43 // | 43 // |
44 // See the header file for an explanation of commit ordering. | 44 // See the header file for an explanation of commit ordering. |
45 void OrderCommitIds( | 45 void OrderCommitIds( |
46 syncable::BaseTransaction* trans, | 46 syncable::BaseTransaction* trans, |
47 size_t max_entries, | 47 size_t max_entries, |
48 const std::set<int64>& ready_unsynced_set, | 48 const std::set<int64>& ready_unsynced_set, |
49 std::vector<int64>* out); | 49 std::vector<int64>* out); |
50 | 50 |
51 } // namespace | 51 } // namespace |
52 | 52 |
53 void GetCommitIdsForType( | 53 void GetCommitIdsForType( |
Nicolas Zea
2013/10/09 00:17:39
why not just have this at the bottom of the file n
rlarocque
2013/10/09 20:00:19
This is also intended to avoid unnecessary diffs.
| |
54 syncable::BaseTransaction* trans, | 54 syncable::BaseTransaction* trans, |
55 ModelType type, | 55 ModelType type, |
56 size_t max_entries, | 56 size_t max_entries, |
57 syncable::Directory::Metahandles* out) { | 57 syncable::Directory::Metahandles* out) { |
58 syncable::Directory* dir = trans->directory(); | 58 syncable::Directory* dir = trans->directory(); |
59 | 59 |
60 // Gather the full set of unsynced items and store it in the session. They | 60 // Gather the full set of unsynced items and store it in the session. They |
61 // are not in the correct order for commit. | 61 // are not in the correct order for commit. |
62 std::set<int64> ready_unsynced_set; | 62 std::set<int64> ready_unsynced_set; |
63 syncable::Directory::Metahandles all_unsynced_handles; | 63 syncable::Directory::Metahandles all_unsynced_handles; |
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
499 | 499 |
500 // Add moves and creates, and prepend their uncommitted parents. | 500 // Add moves and creates, and prepend their uncommitted parents. |
501 traversal.AddCreatesAndMoves(ready_unsynced_set); | 501 traversal.AddCreatesAndMoves(ready_unsynced_set); |
502 | 502 |
503 // Add all deletes. | 503 // Add all deletes. |
504 traversal.AddDeletes(ready_unsynced_set); | 504 traversal.AddDeletes(ready_unsynced_set); |
505 } | 505 } |
506 | 506 |
507 } // namespace | 507 } // namespace |
508 | 508 |
509 void GetCommitIds( | |
510 syncable::BaseTransaction* trans, | |
511 ModelTypeSet requested_types, | |
512 size_t commit_batch_size, | |
513 sessions::OrderedCommitSet* ordered_commit_set) { | |
514 for (ModelTypeSet::Iterator it = requested_types.First(); | |
515 it.Good(); it.Inc()) { | |
516 DCHECK_LE(ordered_commit_set->Size(), commit_batch_size); | |
517 if (ordered_commit_set->Size() >= commit_batch_size) | |
518 break; | |
519 size_t space_remaining = commit_batch_size - ordered_commit_set->Size(); | |
520 syncable::Directory::Metahandles out; | |
521 GetCommitIdsForType( | |
522 trans, | |
523 it.Get(), | |
524 space_remaining, | |
525 &out); | |
526 ordered_commit_set->AddCommitItems(out, it.Get()); | |
527 } | |
528 } | |
529 | |
530 } // namespace syncer | 509 } // namespace syncer |
OLD | NEW |