|  | // 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<uint8_t> serializeToBinary() = 0; | 
|  | virtual ~Serializable() = default; | 
|  | }; | 
|  |  | 
|  | class {{config.lib.export_macro}} FrontendChannel { | 
|  | public: | 
|  | virtual ~FrontendChannel() { } | 
|  | virtual void sendProtocolResponse(int callId, std::unique_ptr<Serializable> message) = 0; | 
|  | virtual void sendProtocolNotification(std::unique_ptr<Serializable> 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) |