root/sync/test/fake_server/fake_server_entity.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. GetId
  2. GetModelType
  3. GetVersion
  4. SetVersion
  5. GetName
  6. CreateId
  7. GetModelTypeFromId
  8. name_
  9. SerializeBaseProtoFields

// Copyright 2014 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/test/fake_server/fake_server_entity.h"

#include <limits>
#include <string>
#include <vector>

#include "base/basictypes.h"
#include "base/guid.h"
#include "base/logging.h"
#include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
#include "net/base/net_errors.h"
#include "net/http/http_status_code.h"
#include "sync/internal_api/public/base/model_type.h"
#include "sync/protocol/sync.pb.h"

using std::string;
using std::vector;

using syncer::ModelType;

// The separator used when formatting IDs.
const char kIdSeparator[] = "/";

namespace fake_server {

FakeServerEntity::~FakeServerEntity() { }

const std::string& FakeServerEntity::GetId() const {
  return id_;
}

ModelType FakeServerEntity::GetModelType() const {
  return model_type_;
}

int64 FakeServerEntity::GetVersion() const {
  return version_;
}

void FakeServerEntity::SetVersion(int64 version) {
  version_ = version;
}

const std::string& FakeServerEntity::GetName() const {
  return name_;
}

// static
string FakeServerEntity::CreateId(const ModelType& model_type,
                                  const string& inner_id) {
  int field_number = GetSpecificsFieldNumberFromModelType(model_type);
  return base::StringPrintf("%d%s%s",
                            field_number,
                            kIdSeparator,
                            inner_id.c_str());
}

// static
ModelType FakeServerEntity::GetModelTypeFromId(const string& id) {
  vector<string> tokens;
  size_t token_count = Tokenize(id, kIdSeparator, &tokens);

  int field_number;
  if (token_count != 2 || !base::StringToInt(tokens[0], &field_number)) {
    return syncer::UNSPECIFIED;
  }

  return syncer::GetModelTypeFromSpecificsFieldNumber(field_number);
}

FakeServerEntity::FakeServerEntity(const string& id,
                                   const ModelType& model_type,
                                   int64 version,
                                   const string& name)
      : id_(id),
        model_type_(model_type),
        version_(version),
        name_(name) {}

void FakeServerEntity::SerializeBaseProtoFields(
    sync_pb::SyncEntity* sync_entity) {
  DCHECK(sync_entity);

  // FakeServerEntity fields
  sync_entity->set_id_string(id_);
  sync_entity->set_version(version_);
  sync_entity->set_name(name_);

  // Data via accessors
  sync_entity->set_deleted(IsDeleted());
  sync_entity->set_folder(IsFolder());
}

}  // namespace fake_server

/* [<][>][^][v][top][bottom][index][help] */