// This file is generated by Object_cpp.template. // Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. //#include "Object.h" {% for namespace in config.protocol.namespace %} namespace {{namespace}} { {% endfor %} std::unique_ptr Object::fromValue(protocol::Value* value, ErrorSupport* errors) { protocol::DictionaryValue* dictionary = DictionaryValue::cast(value); if (!dictionary) { errors->AddError("object expected"); return nullptr; } dictionary = static_cast(dictionary->clone().release()); return std::unique_ptr(new Object(std::unique_ptr(dictionary))); } // Implements Serializable. void Object::AppendSerialized(std::vector* out) const { m_object->AppendSerialized(out); } std::unique_ptr Object::toValue() const { return DictionaryValue::cast(m_object->clone()); } std::unique_ptr Object::clone() const { return std::unique_ptr(new Object(DictionaryValue::cast(m_object->clone()))); } Object::Object(std::unique_ptr object) : m_object(std::move(object)) { } Object::~Object() { } {% for namespace in config.protocol.namespace %} } // namespace {{namespace}} {% endfor %}