// This file is generated by FrontendChannel_h.template. // 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)}}_FrontendChannel_h #define {{"_".join(config.protocol.namespace)}}_FrontendChannel_h {% for namespace in config.protocol.namespace %} namespace {{namespace}} { {% endfor %} class {{config.lib.export_macro}} Serializable { public: ProtocolMessage serialize(bool binary) { if (binary) return StringUtil::binaryToMessage(serializeToBinary()); else return StringUtil::jsonToMessage(serializeToJSON()); } virtual String serializeToJSON() = 0; virtual std::vector serializeToBinary() = 0; virtual ~Serializable() = default; }; class {{config.lib.export_macro}} FrontendChannel { public: virtual ~FrontendChannel() { } virtual void sendProtocolResponse(int callId, std::unique_ptr message) = 0; virtual void sendProtocolNotification(std::unique_ptr message) = 0; virtual void fallThrough(int callId, const String& method, const ProtocolMessage& message) = 0; virtual void flushProtocolNotifications() = 0; }; {% for namespace in config.protocol.namespace %} } // namespace {{namespace}} {% endfor %} #endif // !defined({{"_".join(config.protocol.namespace)}}_FrontendChannel_h)