1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "sync/internal_api/public/base/attachment_id_proto.h"
6
7#include "base/guid.h"
8#include "base/logging.h"
9#include "base/strings/string_util.h"
10
11namespace syncer {
12
13sync_pb::AttachmentIdProto CreateAttachmentIdProto() {
14  sync_pb::AttachmentIdProto proto;
15  std::string guid = base::StringToLowerASCII(base::GenerateGUID());
16  DCHECK(!guid.empty());
17  // Requirements are that this id must be a unique RFC4122 UUID, formatted in
18  // lower case.
19  proto.set_unique_id(guid);
20  return proto;
21}
22
23sync_pb::AttachmentMetadata CreateAttachmentMetadata(
24    const google::protobuf::RepeatedPtrField<sync_pb::AttachmentIdProto>& ids) {
25  sync_pb::AttachmentMetadata result;
26  for (int i = 0; i < ids.size(); ++i) {
27    sync_pb::AttachmentMetadataRecord* record = result.add_record();
28    *record->mutable_id() = ids.Get(i);
29    record->set_is_on_server(true);
30  }
31  return result;
32}
33
34}  // namespace syncer
35