| Index: sync/engine/get_commit_ids_command.cc
|
| diff --git a/sync/engine/get_commit_ids_command.cc b/sync/engine/get_commit_ids_command.cc
|
| index 55d7e232b12941228f9e9108bdae0f58148da53e..1b0129cd2621f5c9b1e17dd158546db1958fad63 100644
|
| --- a/sync/engine/get_commit_ids_command.cc
|
| +++ b/sync/engine/get_commit_ids_command.cc
|
| @@ -22,8 +22,12 @@ using sessions::OrderedCommitSet;
|
| using sessions::SyncSession;
|
| using sessions::StatusController;
|
|
|
| -GetCommitIdsCommand::GetCommitIdsCommand(int commit_batch_size)
|
| - : requested_commit_batch_size_(commit_batch_size) {}
|
| +GetCommitIdsCommand::GetCommitIdsCommand(
|
| + const size_t commit_batch_size,
|
| + sessions::OrderedCommitSet* commit_set)
|
| + : requested_commit_batch_size_(commit_batch_size),
|
| + commit_set_(commit_set) {
|
| +}
|
|
|
| GetCommitIdsCommand::~GetCommitIdsCommand() {}
|
|
|
| @@ -61,17 +65,12 @@ SyncerError GetCommitIdsCommand::ExecuteImpl(SyncSession* session) {
|
| session->routing_info(),
|
| ready_unsynced_set);
|
|
|
| - StatusController* status = session->mutable_status_controller();
|
| - syncable::Directory::UnsyncedMetaHandles ready_unsynced_vector(
|
| - ready_unsynced_set.begin(), ready_unsynced_set.end());
|
| - status->set_unsynced_handles(ready_unsynced_vector);
|
| const vector<syncable::Id>& verified_commit_ids =
|
| - ordered_commit_set_->GetAllCommitIds();
|
| + commit_set_->GetAllCommitIds();
|
|
|
| for (size_t i = 0; i < verified_commit_ids.size(); i++)
|
| DVLOG(1) << "Debug commit batch result:" << verified_commit_ids[i];
|
|
|
| - status->set_commit_set(*ordered_commit_set_.get());
|
| return SYNCER_OK;
|
| }
|
|
|
| @@ -188,7 +187,7 @@ bool GetCommitIdsCommand::AddUncommittedParentsAndTheirPredecessors(
|
| syncable::Entry parent(trans, syncable::GET_BY_ID, parent_id);
|
| CHECK(parent.good()) << "Bad user-only parent in item path.";
|
| int64 handle = parent.Get(syncable::META_HANDLE);
|
| - if (ordered_commit_set_->HaveCommitItem(handle)) {
|
| + if (commit_set_->HaveCommitItem(handle)) {
|
| // We've already added this parent (and therefore all of its parents).
|
| // We can return early.
|
| break;
|
| @@ -196,7 +195,7 @@ bool GetCommitIdsCommand::AddUncommittedParentsAndTheirPredecessors(
|
| if (!AddItemThenPredecessors(trans, ready_unsynced_set, parent,
|
| &item_dependencies)) {
|
| // There was a parent/predecessor in conflict. We return without adding
|
| - // anything to |ordered_commit_set_|.
|
| + // anything to |commit_set|.
|
| DVLOG(1) << "Parent or parent's predecessor was in conflict, omitting "
|
| << item;
|
| return false;
|
| @@ -234,7 +233,7 @@ bool GetCommitIdsCommand::AddItemThenPredecessors(
|
| const syncable::Entry& item,
|
| OrderedCommitSet* result) const {
|
| int64 item_handle = item.Get(syncable::META_HANDLE);
|
| - if (ordered_commit_set_->HaveCommitItem(item_handle)) {
|
| + if (commit_set_->HaveCommitItem(item_handle)) {
|
| // We've already added this item to the commit set, and so must have
|
| // already added the predecessors as well.
|
| return true;
|
| @@ -251,7 +250,7 @@ bool GetCommitIdsCommand::AddItemThenPredecessors(
|
| if (!prev.Get(syncable::IS_UNSYNCED))
|
| break;
|
| int64 handle = prev.Get(syncable::META_HANDLE);
|
| - if (ordered_commit_set_->HaveCommitItem(handle)) {
|
| + if (commit_set_->HaveCommitItem(handle)) {
|
| // We've already added this item to the commit set, and so must have
|
| // already added the predecessors as well.
|
| return true;
|
| @@ -284,7 +283,7 @@ bool GetCommitIdsCommand::AddPredecessorsThenItem(
|
| }
|
|
|
| bool GetCommitIdsCommand::IsCommitBatchFull() const {
|
| - return ordered_commit_set_->Size() >= requested_commit_batch_size_;
|
| + return commit_set_->Size() >= requested_commit_batch_size_;
|
| }
|
|
|
| void GetCommitIdsCommand::AddCreatesAndMoves(
|
| @@ -295,7 +294,7 @@ void GetCommitIdsCommand::AddCreatesAndMoves(
|
| for (std::set<int64>::const_iterator iter = ready_unsynced_set.begin();
|
| !IsCommitBatchFull() && iter != ready_unsynced_set.end(); ++iter) {
|
| int64 metahandle = *iter;
|
| - if (ordered_commit_set_->HaveCommitItem(metahandle))
|
| + if (commit_set_->HaveCommitItem(metahandle))
|
| continue;
|
|
|
| syncable::Entry entry(write_transaction,
|
| @@ -316,14 +315,14 @@ void GetCommitIdsCommand::AddCreatesAndMoves(
|
| ready_unsynced_set,
|
| entry,
|
| &item_dependencies)) {
|
| - ordered_commit_set_->Append(item_dependencies);
|
| + commit_set_->Append(item_dependencies);
|
| }
|
| }
|
| }
|
|
|
| // It's possible that we overcommitted while trying to expand dependent
|
| // items. If so, truncate the set down to the allowed size.
|
| - ordered_commit_set_->Truncate(requested_commit_batch_size_);
|
| + commit_set_->Truncate(requested_commit_batch_size_);
|
| }
|
|
|
| void GetCommitIdsCommand::AddDeletes(
|
| @@ -334,7 +333,7 @@ void GetCommitIdsCommand::AddDeletes(
|
| for (std::set<int64>::const_iterator iter = ready_unsynced_set.begin();
|
| !IsCommitBatchFull() && iter != ready_unsynced_set.end(); ++iter) {
|
| int64 metahandle = *iter;
|
| - if (ordered_commit_set_->HaveCommitItem(metahandle))
|
| + if (commit_set_->HaveCommitItem(metahandle))
|
| continue;
|
|
|
| syncable::Entry entry(write_transaction, syncable::GET_BY_HANDLE,
|
| @@ -365,7 +364,7 @@ void GetCommitIdsCommand::AddDeletes(
|
| DVLOG(1) << "Inserting moved and deleted entry, will be missed by "
|
| << "delete roll." << entry.Get(syncable::ID);
|
|
|
| - ordered_commit_set_->AddCommitItem(metahandle,
|
| + commit_set_->AddCommitItem(metahandle,
|
| entry.Get(syncable::ID),
|
| entry.GetModelType());
|
| }
|
| @@ -396,14 +395,14 @@ void GetCommitIdsCommand::AddDeletes(
|
| for (std::set<int64>::const_iterator iter = ready_unsynced_set.begin();
|
| !IsCommitBatchFull() && iter != ready_unsynced_set.end(); ++iter) {
|
| int64 metahandle = *iter;
|
| - if (ordered_commit_set_->HaveCommitItem(metahandle))
|
| + if (commit_set_->HaveCommitItem(metahandle))
|
| continue;
|
| syncable::MutableEntry entry(write_transaction, syncable::GET_BY_HANDLE,
|
| metahandle);
|
| if (entry.Get(syncable::IS_DEL)) {
|
| syncable::Id parent_id = entry.Get(syncable::PARENT_ID);
|
| if (legal_delete_parents.count(parent_id)) {
|
| - ordered_commit_set_->AddCommitItem(metahandle, entry.Get(syncable::ID),
|
| + commit_set_->AddCommitItem(metahandle, entry.Get(syncable::ID),
|
| entry.GetModelType());
|
| }
|
| }
|
| @@ -414,7 +413,6 @@ void GetCommitIdsCommand::BuildCommitIds(
|
| syncable::WriteTransaction* write_transaction,
|
| const ModelSafeRoutingInfo& routes,
|
| const std::set<int64>& ready_unsynced_set) {
|
| - ordered_commit_set_.reset(new OrderedCommitSet(routes));
|
| // Commits follow these rules:
|
| // 1. Moves or creates are preceded by needed folder creates, from
|
| // root to leaf. For folders whose contents are ordered, moves
|
|
|