// This file is generated by Object_h.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. #ifndef {{"_".join(config.protocol.namespace)}}_Object_h #define {{"_".join(config.protocol.namespace)}}_Object_h //#include "ErrorSupport.h" //#include "Forward.h" //#include "Values.h" #include "{{config.crdtp.dir}}/serializable.h" {% for namespace in config.protocol.namespace %} namespace {{namespace}} { {% endfor %} class {{config.lib.export_macro}} Object : public {{config.crdtp.namespace}}::Serializable { public: static std::unique_ptr fromValue(protocol::Value*, ErrorSupport*); explicit Object(std::unique_ptr); ~Object(); // Implements Serializable. void AppendSerialized(std::vector* out) const override; std::unique_ptr toValue() const; std::unique_ptr clone() const; private: Object() = default; friend struct {{config.crdtp.namespace}}::ProtocolTypeTraits, void>; std::unique_ptr m_object; }; {% for namespace in config.protocol.namespace %} } // namespace {{namespace}} {% endfor %} #endif // !defined({{"_".join(config.protocol.namespace)}}_Object_h)