Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1112)

Unified Diff: third_party/inspector_protocol/lib/ValueConversions_h.template

Issue 2447323002: [inspector] use own copy of third_party/inspector_protocol (Closed)
Patch Set: updated README.v8 Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/inspector_protocol/lib/ValueConversions_h.template
diff --git a/third_party/inspector_protocol/lib/ValueConversions_h.template b/third_party/inspector_protocol/lib/ValueConversions_h.template
new file mode 100644
index 0000000000000000000000000000000000000000..5384c7bb1e29f8390673487fabf34a79ba9ecbdf
--- /dev/null
+++ b/third_party/inspector_protocol/lib/ValueConversions_h.template
@@ -0,0 +1,171 @@
+// 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.
+
+#ifndef {{"_".join(config.protocol.namespace)}}_ValueConversions_h
+#define {{"_".join(config.protocol.namespace)}}_ValueConversions_h
+
+//#include "ErrorSupport.h"
+//#include "Forward.h"
+//#include "Values.h"
+
+{% for namespace in config.protocol.namespace %}
+namespace {{namespace}} {
+{% endfor %}
+
+template<typename T>
+struct ValueConversions {
+ static std::unique_ptr<T> parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ return T::parse(value, errors);
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(T* value)
+ {
+ return value->serialize();
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(const std::unique_ptr<T>& value)
+ {
+ return value->serialize();
+ }
+};
+
+template<>
+struct ValueConversions<bool> {
+ static bool parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ bool result = false;
+ bool success = value ? value->asBoolean(&result) : false;
+ if (!success)
+ errors->addError("boolean value expected");
+ return result;
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(bool value)
+ {
+ return FundamentalValue::create(value);
+ }
+};
+
+template<>
+struct ValueConversions<int> {
+ static int parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ int result = 0;
+ bool success = value ? value->asInteger(&result) : false;
+ if (!success)
+ errors->addError("integer value expected");
+ return result;
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(int value)
+ {
+ return FundamentalValue::create(value);
+ }
+};
+
+template<>
+struct ValueConversions<double> {
+ static double parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ double result = 0;
+ bool success = value ? value->asDouble(&result) : false;
+ if (!success)
+ errors->addError("double value expected");
+ return result;
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(double value)
+ {
+ return FundamentalValue::create(value);
+ }
+};
+
+template<>
+struct ValueConversions<String> {
+ static String parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ String result;
+ bool success = value ? value->asString(&result) : false;
+ if (!success)
+ errors->addError("string value expected");
+ return result;
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(const String& value)
+ {
+ return StringValue::create(value);
+ }
+};
+
+template<>
+struct ValueConversions<Value> {
+ static std::unique_ptr<Value> parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ bool success = !!value;
+ if (!success) {
+ errors->addError("value expected");
+ return nullptr;
+ }
+ return value->clone();
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(Value* value)
+ {
+ return value->clone();
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(const std::unique_ptr<Value>& value)
+ {
+ return value->clone();
+ }
+};
+
+template<>
+struct ValueConversions<DictionaryValue> {
+ static std::unique_ptr<DictionaryValue> parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ bool success = value && value->type() == protocol::Value::TypeObject;
+ if (!success)
+ errors->addError("object expected");
+ return DictionaryValue::cast(value->clone());
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(DictionaryValue* value)
+ {
+ return value->clone();
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(const std::unique_ptr<DictionaryValue>& value)
+ {
+ return value->clone();
+ }
+};
+
+template<>
+struct ValueConversions<ListValue> {
+ static std::unique_ptr<ListValue> parse(protocol::Value* value, ErrorSupport* errors)
+ {
+ bool success = value && value->type() == protocol::Value::TypeArray;
+ if (!success)
+ errors->addError("list expected");
+ return ListValue::cast(value->clone());
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(ListValue* value)
+ {
+ return value->clone();
+ }
+
+ static std::unique_ptr<protocol::Value> serialize(const std::unique_ptr<ListValue>& value)
+ {
+ return value->clone();
+ }
+};
+
+{% for namespace in config.protocol.namespace %}
+} // namespace {{namespace}}
+{% endfor %}
+
+#endif // !defined({{"_".join(config.protocol.namespace)}}_ValueConversions_h)

Powered by Google App Engine
This is Rietveld 408576698