1// Copyright (c) 2013 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 "skia/ext/skia_utils_base.h" 6 7namespace skia { 8 9bool ReadSkString(const Pickle& pickle, PickleIterator* iter, SkString* str) { 10 int reply_length; 11 const char* reply_text; 12 13 if (!pickle.ReadData(iter, &reply_text, &reply_length)) 14 return false; 15 16 if (str) 17 str->set(reply_text, reply_length); 18 return true; 19} 20 21bool ReadSkFontIdentity(const Pickle& pickle, PickleIterator* iter, 22 SkFontConfigInterface::FontIdentity* identity) { 23 uint32_t reply_id; 24 uint32_t reply_ttcIndex; 25 int reply_length; 26 const char* reply_text; 27 28 if (!pickle.ReadUInt32(iter, &reply_id) || 29 !pickle.ReadUInt32(iter, &reply_ttcIndex) || 30 !pickle.ReadData(iter, &reply_text, &reply_length)) 31 return false; 32 33 if (identity) { 34 identity->fID = reply_id; 35 identity->fTTCIndex = reply_ttcIndex; 36 identity->fString.set(reply_text, reply_length); 37 } 38 return true; 39} 40 41bool WriteSkString(Pickle* pickle, const SkString& str) { 42 return pickle->WriteData(str.c_str(), str.size()); 43} 44 45bool WriteSkFontIdentity(Pickle* pickle, 46 const SkFontConfigInterface::FontIdentity& identity) { 47 return pickle->WriteUInt32(identity.fID) && 48 pickle->WriteUInt32(identity.fTTCIndex) && 49 WriteSkString(pickle, identity.fString); 50} 51 52} // namespace skia 53 54