blob: 2c77bde63fa36e6e67fce23ad8cd063dc15253cc [file] [log] [blame]
// Copyright 2015 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 "sync/api/entity_data.h"
#include <algorithm>
#include "base/logging.h"
namespace syncer_v2 {
EntityData::EntityData() {}
EntityData::~EntityData() {}
void EntityData::Swap(EntityData* other) {
id.swap(other->id);
client_tag_hash.swap(other->client_tag_hash);
non_unique_name.swap(other->non_unique_name);
specifics.Swap(&other->specifics);
std::swap(creation_time, other->creation_time);
std::swap(modification_time, other->modification_time);
parent_id.swap(other->parent_id);
unique_position.Swap(&other->unique_position);
}
EntityDataPtr EntityData::PassToPtr() {
EntityDataPtr target;
target.swap_value(this);
return target;
}
void EntityDataTraits::SwapValue(EntityData* dest, EntityData* src) {
dest->Swap(src);
}
bool EntityDataTraits::HasValue(const EntityData& value) {
return !value.client_tag_hash.empty();
}
const EntityData& EntityDataTraits::DefaultValue() {
CR_DEFINE_STATIC_LOCAL(EntityData, default_instance, ());
return default_instance;
}
} // namespace syncer_v2