Chromium Code Reviews| Index: third_party/WebKit/Source/platform/inspector_protocol/String16.cpp |
| diff --git a/third_party/WebKit/Source/platform/inspector_protocol/String16.cpp b/third_party/WebKit/Source/platform/inspector_protocol/String16.cpp |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3a7167f5fa18dcb102d8bbddf61740b64e3bcb23 |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/platform/inspector_protocol/String16.cpp |
| @@ -0,0 +1,101 @@ |
| +// Copyright 2016 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. |
| + |
| +#include "platform/inspector_protocol/String16.h" |
| + |
| +#include <cstdlib> |
| +#include <cstring> |
| +#include <string> |
| + |
| +namespace blink { |
| +namespace protocol { |
| + |
| +namespace internal { |
| + |
| +void intToStr(int number, char* buffer, size_t length) |
| +{ |
| + std::snprintf(buffer, length, "%d", number); |
| +} |
| + |
| +void doubleToStr(double number, char* buffer, size_t length) |
| +{ |
| + std::snprintf(buffer, length, "%f", number); |
| +} |
| + |
| +void doubleToStr3(double number, char* buffer, size_t length) |
| +{ |
| + std::snprintf(buffer, length, "%.3g", number); |
| +} |
| + |
| +void doubleToStr6(double number, char* buffer, size_t length) |
| +{ |
| + std::snprintf(buffer, length, "%.6g", number); |
| +} |
| + |
| +double strToDouble(const char* buffer, bool* ok) |
| +{ |
| + char* endptr; |
| + double result = std::strtod(buffer, &endptr); |
| + if (ok) |
| + *ok = !(*endptr); |
| + return result; |
| +} |
| + |
| +int strToInt(const char* buffer, bool* ok) |
| +{ |
| + char* endptr; |
| + int result = std::strtol(buffer, &endptr, 10); |
| + if (ok) |
| + *ok = !(*endptr); |
| + return result; |
| +} |
| + |
| +} // namespace internal |
| + |
| +String16Builder::String16Builder() |
| +{ |
| +} |
| + |
| +void String16Builder::append(const String16& s) |
| +{ |
| + m_buffer.insert(m_buffer.end(), s.characters16(), s.characters16() + s.length()); |
| +} |
| + |
| +void String16Builder::append(UChar c) |
| +{ |
| + m_buffer.insert(m_buffer.end(), c); |
|
caseq
2016/08/13 00:28:53
m_buffer.push_back(c)
dgozman
2016/08/13 04:49:59
Done.
|
| +} |
| + |
| +void String16Builder::append(char c) |
|
caseq
2016/08/13 00:28:53
I wonder if you really need the overload, wouldn't
dgozman
2016/08/13 04:49:59
Just to be sure. WTF has one.
|
| +{ |
| + UChar u = c; |
| + m_buffer.push_back(u); |
| +} |
| + |
| +void String16Builder::append(const UChar* characters, size_t length) |
| +{ |
| + m_buffer.insert(m_buffer.end(), characters, characters + length); |
| +} |
| + |
| +void String16Builder::append(const char* characters, size_t length) |
| +{ |
| + m_buffer.reserve(m_buffer.size() + length); |
| + for (size_t i = 0; i < length; ++i, ++characters) { |
| + UChar u = *characters; |
| + m_buffer.push_back(u); |
| + } |
| +} |
| + |
| +String16 String16Builder::toString() |
| +{ |
| + return String16(m_buffer.data(), m_buffer.size()); |
| +} |
| + |
| +void String16Builder::reserveCapacity(size_t capacity) |
| +{ |
| + m_buffer.reserve(capacity); |
| +} |
| + |
| +} // namespace protocol |
| +} // namespace blink |