Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1319)

Unified Diff: blimp/helium/object_sync_state.cc

Issue 2602103002: Delete blimp/helium and remove references to it from dependent targets (Closed)
Patch Set: . Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « blimp/helium/object_sync_state.h ('k') | blimp/helium/owned_register.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/helium/object_sync_state.cc
diff --git a/blimp/helium/object_sync_state.cc b/blimp/helium/object_sync_state.cc
deleted file mode 100644
index 4d44808dbf1d8af4015aa25ac88e17d8dd468b74..0000000000000000000000000000000000000000
--- a/blimp/helium/object_sync_state.cc
+++ /dev/null
@@ -1,136 +0,0 @@
-// Copyright 2016 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.
-
-#include "blimp/helium/object_sync_state.h"
-
-#include <string>
-
-#include "base/bind.h"
-#include "base/memory/ptr_util.h"
-#include "blimp/helium/syncable.h"
-#include "blimp/helium/update_scheduler.h"
-
-namespace blimp {
-namespace helium {
-
-ObjectSyncState::ObjectSyncState(
- HeliumObjectId object_id,
- std::unique_ptr<LazySyncable<std::string>> object)
- : object_id_(object_id), object_(std::move(object)) {
- object_->SetLocalUpdateCallback(
- base::Bind(&ObjectSyncState::OnLocalUpdate, base::Unretained(this)));
-}
-
-ObjectSyncState::~ObjectSyncState() = default;
-
-void ObjectSyncState::OnLocalUpdate() {
- is_dirty_ = true;
- if (scheduler_) {
- scheduler_->OnLocalUpdate(object_id_);
- }
-}
-
-void ObjectSyncState::PrepareChangesetMessage(
- MessagePreparedCallback callback) {
- DCHECK(callback);
- DCHECK(scheduler_);
-
- // Set as not dirty now so that if there are local changes between now and
- // when we send the Changeset, it is reflected in |is_dirty_|.
- is_dirty_ = false;
- prepare_callback_ = std::move(callback);
- object_->PrepareToCreateChangeset(
- sent_revision_, prepared_for_changeset_callback_.callback());
-}
-
-void ObjectSyncState::PrepareAckMessage(MessagePreparedCallback callback) {
- DCHECK(callback);
-
- prepare_callback_ = std::move(callback);
- OnPreparedChangeset();
-}
-
-void ObjectSyncState::OnStreamConnected(UpdateScheduler* scheduler) {
- DCHECK(scheduler);
-
- scheduler_ = scheduler;
- prepared_for_changeset_callback_.Reset(base::Bind(
- &ObjectSyncState::OnPreparedChangeset, base::Unretained(this)));
-
- // Determine if our last sent HeliumMessage was acknowledged by the peer.
- is_confirmed_ = (sent_revision_ == acked_revision_);
-
- // Mark the object as requiring an outgoing acknowledgement and inform
- // |scheduler_|.
- remote_revision_needs_ack_ = true;
- scheduler_->OnNeedsAck(object_id_);
-
- // Schedule an update if the object is confirmed and dirty.
- if (is_confirmed_ && is_dirty_) {
- scheduler_->OnLocalUpdate(object_id_);
- }
-}
-
-void ObjectSyncState::OnStreamDisconnected() {
- DCHECK(scheduler_);
-
- prepared_for_changeset_callback_.Cancel();
- prepare_callback_.Reset();
- scheduler_ = nullptr;
-}
-
-void ObjectSyncState::OnChangesetReceived(Revision end_revision,
- const std::string& changeset) {
- DCHECK(scheduler_);
-
- if (object_->ValidateChangeset(changeset)) {
- object_->ApplyChangeset(changeset);
- remote_revision_ = end_revision;
- remote_revision_needs_ack_ = true;
- scheduler_->OnNeedsAck(object_id_);
- }
-}
-
-void ObjectSyncState::OnAckReceived(Revision ack_revision) {
- DCHECK(scheduler_);
-
- acked_revision_ = ack_revision;
- object_->ReleaseBefore(acked_revision_);
- if (!is_confirmed_) {
- is_confirmed_ = true;
- sent_revision_ = ack_revision;
- if (is_dirty_) {
- scheduler_->OnLocalUpdate(object_id_);
- }
- }
-}
-
-void ObjectSyncState::OnPreparedChangeset() {
- DCHECK(prepare_callback_);
-
- proto::HeliumMessage message;
- message.set_object_id(object_id_);
-
- bool has_changed = object_->GetRevision() > sent_revision_;
- if (is_confirmed_ && has_changed) {
- message.set_start_revision(sent_revision_);
- message.set_end_revision(object_->GetRevision());
-
- std::unique_ptr<std::string> changeset =
- object_->CreateChangeset(sent_revision_);
- message.set_changeset(*changeset);
-
- sent_revision_ = message.end_revision();
- }
-
- if (remote_revision_needs_ack_) {
- message.set_ack_revision(remote_revision_);
- remote_revision_needs_ack_ = false;
- }
-
- prepare_callback_.Run(std::move(message));
-}
-
-} // namespace helium
-} // namespace blimp
« no previous file with comments | « blimp/helium/object_sync_state.h ('k') | blimp/helium/owned_register.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698