12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "skia/ext/skia_utils_base.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace skia { 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool ReadSkString(const Pickle& pickle, PickleIterator* iter, SkString* str) { 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int reply_length; 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* reply_text; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!pickle.ReadData(iter, &reply_text, &reply_length)) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (str) 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) str->set(reply_text, reply_length); 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool ReadSkFontIdentity(const Pickle& pickle, PickleIterator* iter, 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) SkFontConfigInterface::FontIdentity* identity) { 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t reply_id; 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t reply_ttcIndex; 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int reply_length; 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const char* reply_text; 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!pickle.ReadUInt32(iter, &reply_id) || 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !pickle.ReadUInt32(iter, &reply_ttcIndex) || 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !pickle.ReadData(iter, &reply_text, &reply_length)) 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return false; 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (identity) { 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) identity->fID = reply_id; 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) identity->fTTCIndex = reply_ttcIndex; 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) identity->fString.set(reply_text, reply_length); 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool WriteSkString(Pickle* pickle, const SkString& str) { 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return pickle->WriteData(str.c_str(), str.size()); 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool WriteSkFontIdentity(Pickle* pickle, 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const SkFontConfigInterface::FontIdentity& identity) { 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return pickle->WriteUInt32(identity.fID) && 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) pickle->WriteUInt32(identity.fTTCIndex) && 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) WriteSkString(pickle, identity.fString); 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} // namespace skia 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 54