1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file. 4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "sync/internal_api/public/base/attachment_id_proto.h" 6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/guid.h" 8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/logging.h" 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/strings/string_util.h" 10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace syncer { 12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)sync_pb::AttachmentIdProto CreateAttachmentIdProto() { 14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) sync_pb::AttachmentIdProto proto; 156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) std::string guid = base::StringToLowerASCII(base::GenerateGUID()); 16010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) DCHECK(!guid.empty()); 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Requirements are that this id must be a unique RFC4122 UUID, formatted in 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // lower case. 19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) proto.set_unique_id(guid); 20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) return proto; 21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} 22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdochsync_pb::AttachmentMetadata CreateAttachmentMetadata( 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch const google::protobuf::RepeatedPtrField<sync_pb::AttachmentIdProto>& ids) { 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sync_pb::AttachmentMetadata result; 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch for (int i = 0; i < ids.size(); ++i) { 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch sync_pb::AttachmentMetadataRecord* record = result.add_record(); 28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch *record->mutable_id() = ids.Get(i); 29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch record->set_is_on_server(true); 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch } 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return result; 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 33116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)} // namespace syncer 35