[inspector_protocol] Allow custom json parser.
Drive-by: removed platform include, as it's not necessary anymore.
BUG=chromium:635953
R=kozyatinskiy@chromium.org
Review URL: https://codereview.chromium.org/2490733002 .
diff --git a/CodeGenerator.py b/CodeGenerator.py
index 18073dd..4a0ecbe 100644
--- a/CodeGenerator.py
+++ b/CodeGenerator.py
@@ -287,7 +287,6 @@
"raw_type": "protocol::Array<%s>" % type["raw_type"],
"raw_pass_type": "protocol::Array<%s>*" % type["raw_type"],
"raw_return_type": "protocol::Array<%s>*" % type["raw_type"],
- "create_type": "wrapUnique(new protocol::Array<%s>())" % type["raw_type"],
"out_type": "protocol::Array<%s>&" % type["raw_type"],
}
diff --git a/lib/Array_h.template b/lib/Array_h.template
index 9555e30..a258da1 100644
--- a/lib/Array_h.template
+++ b/lib/Array_h.template
@@ -19,7 +19,7 @@
public:
static std::unique_ptr<Array<T>> create()
{
- return wrapUnique(new Array<T>());
+ return std::unique_ptr<Array<T>>(new Array<T>());
}
static std::unique_ptr<Array<T>> parse(protocol::Value* value, ErrorSupport* errors)
@@ -74,7 +74,7 @@
public:
static std::unique_ptr<Array<T>> create()
{
- return wrapUnique(new Array<T>());
+ return std::unique_ptr<Array<T>>(new Array<T>());
}
static std::unique_ptr<Array<T>> parse(protocol::Value* value, ErrorSupport* errors)
diff --git a/lib/DispatcherBase_cpp.template b/lib/DispatcherBase_cpp.template
index c4f36a5..9095cbc 100644
--- a/lib/DispatcherBase_cpp.template
+++ b/lib/DispatcherBase_cpp.template
@@ -88,7 +88,7 @@
// static
bool DispatcherBase::getCommandName(const String& message, String* result)
{
- std::unique_ptr<protocol::Value> value = parseJSON(message);
+ std::unique_ptr<protocol::Value> value = StringUtil::parseJSON(message);
if (!value)
return false;
diff --git a/lib/Forward_h.template b/lib/Forward_h.template
index 04868b7..34d1c0d 100644
--- a/lib/Forward_h.template
+++ b/lib/Forward_h.template
@@ -8,7 +8,6 @@
{% if config.lib.export_header %}
#include {{format_include(config.lib.export_header)}}
{% endif %}
-#include {{format_include(config.lib.platform_header)}}
#include {{format_include(config.lib.string_header)}}
#include <vector>
diff --git a/lib/Object_cpp.template b/lib/Object_cpp.template
index e3f18c3..46b0c94 100644
--- a/lib/Object_cpp.template
+++ b/lib/Object_cpp.template
@@ -10,12 +10,13 @@
std::unique_ptr<Object> Object::parse(protocol::Value* value, ErrorSupport* errors)
{
- protocol::DictionaryValue* object = DictionaryValue::cast(value);
- if (!object) {
+ protocol::DictionaryValue* dictionary = DictionaryValue::cast(value);
+ if (!dictionary) {
errors->addError("object expected");
return nullptr;
}
- return wrapUnique(new Object(wrapUnique(static_cast<DictionaryValue*>(object->clone().release()))));
+ dictionary = static_cast<protocol::DictionaryValue*>(dictionary->clone().release());
+ return std::unique_ptr<Object>(new Object(std::unique_ptr<DictionaryValue>(dictionary)));
}
std::unique_ptr<protocol::DictionaryValue> Object::serialize() const
@@ -25,7 +26,7 @@
std::unique_ptr<Object> Object::clone() const
{
- return wrapUnique(new Object(DictionaryValue::cast(m_object->clone())));
+ return std::unique_ptr<Object>(new Object(DictionaryValue::cast(m_object->clone())));
}
Object::Object(std::unique_ptr<protocol::DictionaryValue> object) : m_object(std::move(object)) { }
diff --git a/lib/Parser_cpp.template b/lib/Parser_cpp.template
index a103b82..11a6063 100644
--- a/lib/Parser_cpp.template
+++ b/lib/Parser_cpp.template
@@ -538,12 +538,12 @@
} // anonymous namespace
-std::unique_ptr<Value> parseJSON(const uint16_t* characters, unsigned length)
+std::unique_ptr<Value> parseJSONCharacters(const uint16_t* characters, unsigned length)
{
return parseJSONInternal<uint16_t>(characters, length);
}
-std::unique_ptr<Value> parseJSON(const uint8_t* characters, unsigned length)
+std::unique_ptr<Value> parseJSONCharacters(const uint8_t* characters, unsigned length)
{
return parseJSONInternal<uint8_t>(characters, length);
}
diff --git a/lib/Parser_h.template b/lib/Parser_h.template
index 7b2a29b..8397d3f 100644
--- a/lib/Parser_h.template
+++ b/lib/Parser_h.template
@@ -12,8 +12,8 @@
namespace {{namespace}} {
{% endfor %}
-{{config.lib.export_macro}} std::unique_ptr<Value> parseJSON(const uint8_t*, unsigned);
-{{config.lib.export_macro}} std::unique_ptr<Value> parseJSON(const uint16_t*, unsigned);
+{{config.lib.export_macro}} std::unique_ptr<Value> parseJSONCharacters(const uint8_t*, unsigned);
+{{config.lib.export_macro}} std::unique_ptr<Value> parseJSONCharacters(const uint16_t*, unsigned);
{% for namespace in config.protocol.namespace %}
} // namespace {{namespace}}
diff --git a/lib/Values_h.template b/lib/Values_h.template
index 8f75ef2..8e0d555 100644
--- a/lib/Values_h.template
+++ b/lib/Values_h.template
@@ -24,7 +24,7 @@
static std::unique_ptr<Value> null()
{
- return wrapUnique(new Value());
+ return std::unique_ptr<Value>(new Value());
}
enum ValueType {
@@ -67,17 +67,17 @@
public:
static std::unique_ptr<FundamentalValue> create(bool value)
{
- return wrapUnique(new FundamentalValue(value));
+ return std::unique_ptr<FundamentalValue>(new FundamentalValue(value));
}
static std::unique_ptr<FundamentalValue> create(int value)
{
- return wrapUnique(new FundamentalValue(value));
+ return std::unique_ptr<FundamentalValue>(new FundamentalValue(value));
}
static std::unique_ptr<FundamentalValue> create(double value)
{
- return wrapUnique(new FundamentalValue(value));
+ return std::unique_ptr<FundamentalValue>(new FundamentalValue(value));
}
bool asBoolean(bool* output) const override;
@@ -102,12 +102,12 @@
public:
static std::unique_ptr<StringValue> create(const String& value)
{
- return wrapUnique(new StringValue(value));
+ return std::unique_ptr<StringValue>(new StringValue(value));
}
static std::unique_ptr<StringValue> create(const char* value)
{
- return wrapUnique(new StringValue(value));
+ return std::unique_ptr<StringValue>(new StringValue(value));
}
bool asString(String* output) const override;
@@ -125,7 +125,7 @@
public:
static std::unique_ptr<SerializedValue> create(const String& value)
{
- return wrapUnique(new SerializedValue(value));
+ return std::unique_ptr<SerializedValue>(new SerializedValue(value));
}
bool asSerialized(String* output) const override;
@@ -143,7 +143,7 @@
using Entry = std::pair<String, Value*>;
static std::unique_ptr<DictionaryValue> create()
{
- return wrapUnique(new DictionaryValue());
+ return std::unique_ptr<DictionaryValue>(new DictionaryValue());
}
static DictionaryValue* cast(Value* value)
@@ -155,7 +155,7 @@
static std::unique_ptr<DictionaryValue> cast(std::unique_ptr<Value> value)
{
- return wrapUnique(DictionaryValue::cast(value.release()));
+ return std::unique_ptr<DictionaryValue>(DictionaryValue::cast(value.release()));
}
void writeJSON(StringBuilder* output) const override;
@@ -209,7 +209,7 @@
public:
static std::unique_ptr<ListValue> create()
{
- return wrapUnique(new ListValue());
+ return std::unique_ptr<ListValue>(new ListValue());
}
static ListValue* cast(Value* value)
@@ -221,7 +221,7 @@
static std::unique_ptr<ListValue> cast(std::unique_ptr<Value> value)
{
- return wrapUnique(ListValue::cast(value.release()));
+ return std::unique_ptr<ListValue>(ListValue::cast(value.release()));
}
~ListValue() override;
diff --git a/templates/TypeBuilder_cpp.template b/templates/TypeBuilder_cpp.template
index 1103f20..11fd599 100644
--- a/templates/TypeBuilder_cpp.template
+++ b/templates/TypeBuilder_cpp.template
@@ -106,7 +106,7 @@
std::unique_ptr<API::{{type.id}}> API::{{type.id}}::fromJSONString(const {{config.exported.string_in}}& json)
{
ErrorSupport errors;
- std::unique_ptr<Value> value = parseJSON(json);
+ std::unique_ptr<Value> value = StringUtil::parseJSON(json);
if (!value)
return nullptr;
return protocol::{{domain.domain}}::{{type.id}}::parse(value.get(), &errors);
@@ -355,7 +355,7 @@
// static
void Dispatcher::wire(UberDispatcher* dispatcher, Backend* backend)
{
- dispatcher->registerBackend("{{domain.domain}}", wrapUnique(new DispatcherImpl(dispatcher->channel(), backend)));
+ dispatcher->registerBackend("{{domain.domain}}", std::unique_ptr<protocol::DispatcherBase>(new DispatcherImpl(dispatcher->channel(), backend)));
}
} // {{domain.domain}}