| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_STRING_H_ | 5 #ifndef MOJO_PUBLIC_CPP_BINDINGS_STRING_H_ |
| 6 #define MOJO_PUBLIC_CPP_BINDINGS_STRING_H_ | 6 #define MOJO_PUBLIC_CPP_BINDINGS_STRING_H_ |
| 7 | 7 |
| 8 #include <assert.h> | |
| 9 | |
| 10 #include <string> | 8 #include <string> |
| 11 | 9 |
| 12 #include "mojo/public/cpp/bindings/lib/array_internal.h" | 10 #include "mojo/public/cpp/bindings/lib/array_internal.h" |
| 13 #include "mojo/public/cpp/bindings/type_converter.h" | 11 #include "mojo/public/cpp/bindings/type_converter.h" |
| 14 #include "mojo/public/cpp/system/macros.h" | 12 #include "mojo/public/cpp/environment/logging.h" |
| 15 | 13 |
| 16 namespace mojo { | 14 namespace mojo { |
| 17 | 15 |
| 18 class String { | 16 class String { |
| 19 public: | 17 public: |
| 20 typedef internal::String_Data Data_; | 18 typedef internal::String_Data Data_; |
| 21 | 19 |
| 22 String() : is_null_(true) {} | 20 String() : is_null_(true) {} |
| 23 String(const std::string& str) : value_(str), is_null_(false) {} | 21 String(const std::string& str) : value_(str), is_null_(false) {} |
| 24 String(const char* chars) : is_null_(!chars) { | 22 String(const char* chars) : is_null_(!chars) { |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 } | 116 } |
| 119 static std::string ConvertTo(const String& input) { | 117 static std::string ConvertTo(const String& input) { |
| 120 return input; | 118 return input; |
| 121 } | 119 } |
| 122 }; | 120 }; |
| 123 | 121 |
| 124 template <size_t N> | 122 template <size_t N> |
| 125 class TypeConverter<String, char[N]> { | 123 class TypeConverter<String, char[N]> { |
| 126 public: | 124 public: |
| 127 static String ConvertFrom(const char input[N]) { | 125 static String ConvertFrom(const char input[N]) { |
| 128 assert(input); | 126 MOJO_DCHECK(input); |
| 129 return String(input, N-1); | 127 return String(input, N-1); |
| 130 } | 128 } |
| 131 }; | 129 }; |
| 132 | 130 |
| 133 // Appease MSVC. | 131 // Appease MSVC. |
| 134 template <size_t N> | 132 template <size_t N> |
| 135 class TypeConverter<String, const char[N]> { | 133 class TypeConverter<String, const char[N]> { |
| 136 public: | 134 public: |
| 137 static String ConvertFrom(const char input[N]) { | 135 static String ConvertFrom(const char input[N]) { |
| 138 assert(input); | 136 MOJO_DCHECK(input); |
| 139 return String(input, N-1); | 137 return String(input, N-1); |
| 140 } | 138 } |
| 141 }; | 139 }; |
| 142 | 140 |
| 143 template <> | 141 template <> |
| 144 class TypeConverter<String, const char*> { | 142 class TypeConverter<String, const char*> { |
| 145 public: | 143 public: |
| 146 // |input| may be null, in which case a null String will be returned. | 144 // |input| may be null, in which case a null String will be returned. |
| 147 static String ConvertFrom(const char* input) { | 145 static String ConvertFrom(const char* input) { |
| 148 return String(input); | 146 return String(input); |
| 149 } | 147 } |
| 150 }; | 148 }; |
| 151 | 149 |
| 152 } // namespace mojo | 150 } // namespace mojo |
| 153 | 151 |
| 154 #endif // MOJO_PUBLIC_CPP_BINDINGS_STRING_H_ | 152 #endif // MOJO_PUBLIC_CPP_BINDINGS_STRING_H_ |
| OLD | NEW |