Index: src/inspector/StringUtil.h |
diff --git a/src/inspector/StringUtil.h b/src/inspector/StringUtil.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8eb0679d3847890590191be366677e67154add1e |
--- /dev/null |
+++ b/src/inspector/StringUtil.h |
@@ -0,0 +1,73 @@ |
+// Copyright 2016 the V8 project 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 V8_INSPECTOR_STRINGUTIL_H_ |
+#define V8_INSPECTOR_STRINGUTIL_H_ |
+ |
+#include "src/inspector/Allocator.h" |
+#include "src/inspector/String16.h" |
+#include "src/inspector/public/StringBuffer.h" |
+#include "src/inspector/public/StringView.h" |
+ |
+#include <v8.h> |
+ |
+namespace v8_inspector { |
+ |
+namespace protocol { |
+ |
+class Value; |
+ |
+using String = v8_inspector::String16; |
+using StringBuilder = v8_inspector::String16Builder; |
+ |
+class StringUtil { |
+ public: |
+ static String substring(const String& s, unsigned pos, unsigned len) { |
+ return s.substring(pos, len); |
+ } |
+ static String fromInteger(int number) { return String::fromInteger(number); } |
+ static String fromDouble(double number) { return String::fromDouble(number); } |
+ static const size_t kNotFound = String::kNotFound; |
+ static void builderReserve(StringBuilder& builder, unsigned capacity) { |
+ builder.reserveCapacity(capacity); |
+ } |
+}; |
+ |
+std::unique_ptr<protocol::Value> parseJSON(const StringView& json); |
+std::unique_ptr<protocol::Value> parseJSON(const String16& json); |
+ |
+} // namespace protocol |
+ |
+std::unique_ptr<protocol::Value> toProtocolValue(v8::Local<v8::Context>, |
+ v8::Local<v8::Value>, |
+ int maxDepth = 1000); |
+ |
+v8::Local<v8::String> toV8String(v8::Isolate*, const String16&); |
+v8::Local<v8::String> toV8StringInternalized(v8::Isolate*, const String16&); |
+v8::Local<v8::String> toV8StringInternalized(v8::Isolate*, const char*); |
+v8::Local<v8::String> toV8String(v8::Isolate*, const StringView&); |
+// TODO(dgozman): rename to toString16. |
+String16 toProtocolString(v8::Local<v8::String>); |
+String16 toProtocolStringWithTypeCheck(v8::Local<v8::Value>); |
+String16 toString16(const StringView&); |
+StringView toStringView(const String16&); |
+bool stringViewStartsWith(const StringView&, const char*); |
+ |
+class StringBufferImpl : public StringBuffer { |
+ V8_INSPECTOR_DISALLOW_COPY(StringBufferImpl); |
+ |
+ public: |
+ // Destroys string's content. |
+ static std::unique_ptr<StringBufferImpl> adopt(String16&); |
+ const StringView& string() override { return m_string; } |
+ |
+ private: |
+ explicit StringBufferImpl(String16&); |
+ String16 m_owner; |
+ StringView m_string; |
+}; |
+ |
+} // namespace v8_inspector |
+ |
+#endif // V8_INSPECTOR_STRINGUTIL_H_ |