1// Copyright 2016 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 "mojo/public/cpp/bindings/string_traits_string16.h" 6 7#include <string> 8 9#include "base/strings/utf_string_conversions.h" 10 11namespace mojo { 12 13// static 14void* StringTraits<base::string16>::SetUpContext(const base::string16& input) { 15 return new std::string(base::UTF16ToUTF8(input)); 16} 17 18// static 19void StringTraits<base::string16>::TearDownContext(const base::string16& input, 20 void* context) { 21 delete static_cast<std::string*>(context); 22} 23 24// static 25size_t StringTraits<base::string16>::GetSize(const base::string16& input, 26 void* context) { 27 return static_cast<std::string*>(context)->size(); 28} 29 30// static 31const char* StringTraits<base::string16>::GetData(const base::string16& input, 32 void* context) { 33 return static_cast<std::string*>(context)->data(); 34} 35 36// static 37bool StringTraits<base::string16>::Read(StringDataView input, 38 base::string16* output) { 39 return base::UTF8ToUTF16(input.storage(), input.size(), output); 40} 41 42} // namespace mojo 43