Home | History | Annotate | Download | only in ext
      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