Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / mojo / common / common_type_converters.cc
1 // Copyright 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 "mojo/common/common_type_converters.h"
6
7 #include <string>
8
9 #include "base/strings/utf_string_conversions.h"
10 #include "url/gurl.h"
11
12 namespace mojo {
13
14 // static
15 String TypeConverter<String, base::StringPiece>::ConvertFrom(
16     const base::StringPiece& input) {
17   if (input.empty()) {
18     char c = 0;
19     return String(&c, 0);
20   }
21   return String(input.data(), input.size());
22 }
23 // static
24 base::StringPiece TypeConverter<String, base::StringPiece>::ConvertTo(
25     const String& input) {
26   return input.get();
27 }
28
29 // static
30 String TypeConverter<String, base::string16>::ConvertFrom(
31     const base::string16& input) {
32   return TypeConverter<String, base::StringPiece>::ConvertFrom(
33       base::UTF16ToUTF8(input));
34 }
35 // static
36 base::string16 TypeConverter<String, base::string16>::ConvertTo(
37     const String& input) {
38   return base::UTF8ToUTF16(TypeConverter<String, base::StringPiece>::ConvertTo(
39       input));
40 }
41
42 String TypeConverter<String, GURL>::ConvertFrom(const GURL& input) {
43   return String(input.spec());
44 }
45
46 GURL TypeConverter<String, GURL>::ConvertTo(const String& input) {
47   return GURL(input.get());
48 }
49
50 }  // namespace mojo