| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/internal_api/all_status.h" | 5 #include "sync/internal_api/all_status.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/port.h" | 10 #include "base/port.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 status.server_conflicts = 0; | 37 status.server_conflicts = 0; |
| 38 status.committed_count = 0; | 38 status.committed_count = 0; |
| 39 status.initial_sync_ended = false; | 39 status.initial_sync_ended = false; |
| 40 status.updates_available = 0; | 40 status.updates_available = 0; |
| 41 return status; | 41 return status; |
| 42 } | 42 } |
| 43 | 43 |
| 44 sync_api::SyncManager::Status AllStatus::CalcSyncing( | 44 sync_api::SyncManager::Status AllStatus::CalcSyncing( |
| 45 const SyncEngineEvent &event) const { | 45 const SyncEngineEvent &event) const { |
| 46 sync_api::SyncManager::Status status = CreateBlankStatus(); | 46 sync_api::SyncManager::Status status = CreateBlankStatus(); |
| 47 const sessions::SyncSessionSnapshot* snapshot = event.snapshot; | 47 const sessions::SyncSessionSnapshot& snapshot = event.snapshot; |
| 48 status.unsynced_count = static_cast<int>(snapshot->unsynced_count); | 48 status.unsynced_count = static_cast<int>(snapshot.unsynced_count()); |
| 49 status.encryption_conflicts = snapshot->num_encryption_conflicts; | 49 status.encryption_conflicts = snapshot.num_encryption_conflicts(); |
| 50 status.hierarchy_conflicts = snapshot->num_hierarchy_conflicts; | 50 status.hierarchy_conflicts = snapshot.num_hierarchy_conflicts(); |
| 51 status.simple_conflicts = snapshot->num_simple_conflicts; | 51 status.simple_conflicts = snapshot.num_simple_conflicts(); |
| 52 status.server_conflicts = snapshot->num_server_conflicts; | 52 status.server_conflicts = snapshot.num_server_conflicts(); |
| 53 status.committed_count = snapshot->syncer_status.num_successful_commits; | 53 status.committed_count = snapshot.syncer_status().num_successful_commits; |
| 54 | 54 |
| 55 if (event.what_happened == SyncEngineEvent::SYNC_CYCLE_BEGIN) { | 55 if (event.what_happened == SyncEngineEvent::SYNC_CYCLE_BEGIN) { |
| 56 status.syncing = true; | 56 status.syncing = true; |
| 57 } else if (event.what_happened == SyncEngineEvent::SYNC_CYCLE_ENDED) { | 57 } else if (event.what_happened == SyncEngineEvent::SYNC_CYCLE_ENDED) { |
| 58 status.syncing = false; | 58 status.syncing = false; |
| 59 } | 59 } |
| 60 | 60 |
| 61 status.initial_sync_ended |= snapshot->is_share_usable; | 61 status.initial_sync_ended |= snapshot.is_share_usable(); |
| 62 | 62 |
| 63 status.updates_available += snapshot->num_server_changes_remaining; | 63 status.updates_available += snapshot.num_server_changes_remaining(); |
| 64 status.sync_protocol_error = snapshot->errors.sync_protocol_error; | 64 status.sync_protocol_error = snapshot.errors().sync_protocol_error; |
| 65 | 65 |
| 66 // Accumulate update count only once per session to avoid double-counting. | 66 // Accumulate update count only once per session to avoid double-counting. |
| 67 // TODO(ncarter): Make this realtime by having the syncer_status | 67 // TODO(ncarter): Make this realtime by having the syncer_status |
| 68 // counter preserve its value across sessions. http://crbug.com/26339 | 68 // counter preserve its value across sessions. http://crbug.com/26339 |
| 69 if (event.what_happened == SyncEngineEvent::SYNC_CYCLE_ENDED) { | 69 if (event.what_happened == SyncEngineEvent::SYNC_CYCLE_ENDED) { |
| 70 status.updates_received += | 70 status.updates_received += |
| 71 snapshot->syncer_status.num_updates_downloaded_total; | 71 snapshot.syncer_status().num_updates_downloaded_total; |
| 72 status.tombstone_updates_received += | 72 status.tombstone_updates_received += |
| 73 snapshot->syncer_status.num_tombstone_updates_downloaded_total; | 73 snapshot.syncer_status().num_tombstone_updates_downloaded_total; |
| 74 status.reflected_updates_received += | 74 status.reflected_updates_received += |
| 75 snapshot->syncer_status.num_reflected_updates_downloaded_total; | 75 snapshot.syncer_status().num_reflected_updates_downloaded_total; |
| 76 status.num_local_overwrites_total += | 76 status.num_local_overwrites_total += |
| 77 snapshot->syncer_status.num_local_overwrites; | 77 snapshot.syncer_status().num_local_overwrites; |
| 78 status.num_server_overwrites_total += | 78 status.num_server_overwrites_total += |
| 79 snapshot->syncer_status.num_server_overwrites; | 79 snapshot.syncer_status().num_server_overwrites; |
| 80 if (snapshot->syncer_status.num_updates_downloaded_total == 0) { | 80 if (snapshot.syncer_status().num_updates_downloaded_total == 0) { |
| 81 ++status.empty_get_updates; | 81 ++status.empty_get_updates; |
| 82 } else { | 82 } else { |
| 83 ++status.nonempty_get_updates; | 83 ++status.nonempty_get_updates; |
| 84 } | 84 } |
| 85 if (snapshot->syncer_status.num_successful_commits == 0) { | 85 if (snapshot.syncer_status().num_successful_commits == 0) { |
| 86 ++status.sync_cycles_without_commits; | 86 ++status.sync_cycles_without_commits; |
| 87 } else { | 87 } else { |
| 88 ++status.sync_cycles_with_commits; | 88 ++status.sync_cycles_with_commits; |
| 89 } | 89 } |
| 90 if (snapshot->syncer_status.num_successful_commits == 0 && | 90 if (snapshot.syncer_status().num_successful_commits == 0 && |
| 91 snapshot->syncer_status.num_updates_downloaded_total == 0) { | 91 snapshot.syncer_status().num_updates_downloaded_total == 0) { |
| 92 ++status.useless_sync_cycles; | 92 ++status.useless_sync_cycles; |
| 93 } else { | 93 } else { |
| 94 ++status.useful_sync_cycles; | 94 ++status.useful_sync_cycles; |
| 95 } | 95 } |
| 96 } | 96 } |
| 97 return status; | 97 return status; |
| 98 } | 98 } |
| 99 | 99 |
| 100 void AllStatus::OnSyncEngineEvent(const SyncEngineEvent& event) { | 100 void AllStatus::OnSyncEngineEvent(const SyncEngineEvent& event) { |
| 101 ScopedStatusLock lock(this); | 101 ScopedStatusLock lock(this); |
| 102 switch (event.what_happened) { | 102 switch (event.what_happened) { |
| 103 case SyncEngineEvent::SYNC_CYCLE_BEGIN: | 103 case SyncEngineEvent::SYNC_CYCLE_BEGIN: |
| 104 case SyncEngineEvent::STATUS_CHANGED: | 104 case SyncEngineEvent::STATUS_CHANGED: |
| 105 case SyncEngineEvent::SYNC_CYCLE_ENDED: | 105 case SyncEngineEvent::SYNC_CYCLE_ENDED: |
| 106 status_ = CalcSyncing(event); | 106 status_ = CalcSyncing(event); |
| 107 break; | 107 break; |
| 108 case SyncEngineEvent::STOP_SYNCING_PERMANENTLY: | 108 case SyncEngineEvent::STOP_SYNCING_PERMANENTLY: |
| 109 case SyncEngineEvent::UPDATED_TOKEN: | 109 case SyncEngineEvent::UPDATED_TOKEN: |
| 110 case SyncEngineEvent::CLEAR_SERVER_DATA_FAILED: | 110 case SyncEngineEvent::CLEAR_SERVER_DATA_FAILED: |
| 111 case SyncEngineEvent::CLEAR_SERVER_DATA_SUCCEEDED: | 111 case SyncEngineEvent::CLEAR_SERVER_DATA_SUCCEEDED: |
| 112 break; | 112 break; |
| 113 case SyncEngineEvent::ACTIONABLE_ERROR: | 113 case SyncEngineEvent::ACTIONABLE_ERROR: |
| 114 status_ = CreateBlankStatus(); | 114 status_ = CreateBlankStatus(); |
| 115 status_.sync_protocol_error = event.snapshot->errors.sync_protocol_error; | 115 status_.sync_protocol_error = event.snapshot.errors().sync_protocol_error; |
| 116 break; | 116 break; |
| 117 default: | 117 default: |
| 118 LOG(ERROR) << "Unrecognized Syncer Event: " << event.what_happened; | 118 LOG(ERROR) << "Unrecognized Syncer Event: " << event.what_happened; |
| 119 break; | 119 break; |
| 120 } | 120 } |
| 121 } | 121 } |
| 122 | 122 |
| 123 sync_api::SyncManager::Status AllStatus::status() const { | 123 sync_api::SyncManager::Status AllStatus::status() const { |
| 124 base::AutoLock lock(mutex_); | 124 base::AutoLock lock(mutex_); |
| 125 return status_; | 125 return status_; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 ScopedStatusLock::ScopedStatusLock(AllStatus* allstatus) | 158 ScopedStatusLock::ScopedStatusLock(AllStatus* allstatus) |
| 159 : allstatus_(allstatus) { | 159 : allstatus_(allstatus) { |
| 160 allstatus->mutex_.Acquire(); | 160 allstatus->mutex_.Acquire(); |
| 161 } | 161 } |
| 162 | 162 |
| 163 ScopedStatusLock::~ScopedStatusLock() { | 163 ScopedStatusLock::~ScopedStatusLock() { |
| 164 allstatus_->mutex_.Release(); | 164 allstatus_->mutex_.Release(); |
| 165 } | 165 } |
| 166 | 166 |
| 167 } // namespace browser_sync | 167 } // namespace browser_sync |
| OLD | NEW |