// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SKIA_EXT_SKIA_UTILS_BASE_H_
#define SKIA_EXT_SKIA_UTILS_BASE_H_

#include "base/pickle.h"
#include "third_party/skia/include/ports/SkFontConfigInterface.h"

namespace skia {

// Return true if the pickle/iterator contains a string. If so, and if str
// is not null, copy that string into str.
SK_API bool ReadSkString(const Pickle& pickle, PickleIterator* iter,
                         SkString* str);

// Return true if the pickle/iterator contains a FontIdentity. If so, and if
// identity is not null, copy it into identity.
SK_API bool ReadSkFontIdentity(const Pickle& pickle, PickleIterator* iter,
                               SkFontConfigInterface::FontIdentity* identity);

// Return true if str can be written into the request pickle.
SK_API bool WriteSkString(Pickle* pickle, const SkString& str);

// Return true if identity can be written into the request pickle.
SK_API bool WriteSkFontIdentity(Pickle* pickle,
                          const SkFontConfigInterface::FontIdentity& identity);

}  // namespace skia

#endif  // SKIA_EXT_SKIA_UTILS_BASE_H_