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 7 namespace skia { 8 9 bool 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 21 bool 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 41 bool WriteSkString(Pickle* pickle, const SkString& str) { 42 return pickle->WriteData(str.c_str(), str.size()); 43 } 44 45 bool 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