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 11 namespace syncer { 12 CreateAttachmentIdProto()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 CreateAttachmentMetadata(const google::protobuf::RepeatedPtrField<sync_pb::AttachmentIdProto> & ids)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