1/* 2 * Copyright 2017, Andrew Lindesay <apl@lindesay.co.nz> 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _JSON_MESSAGE_WRITER_H 6#define _JSON_MESSAGE_WRITER_H 7 8 9#include "JsonWriter.h" 10 11#include <Message.h> 12#include <String.h> 13 14 15enum json_message_container_what { 16 B_JSON_MESSAGE_WHAT_OBJECT = '_JTM', 17 B_JSON_MESSAGE_WHAT_ARRAY = '_JTA' 18}; 19 20 21namespace BPrivate { 22 23class BStackedMessageEventListener; 24 25class BJsonMessageWriter : public BJsonWriter { 26friend class BStackedMessageEventListener; 27public: 28 BJsonMessageWriter(BMessage& message); 29 virtual ~BJsonMessageWriter(); 30 31 bool Handle(const BJsonEvent& event); 32 void Complete(); 33 34private: 35 void SetStackedListener( 36 BStackedMessageEventListener* listener); 37 38 BMessage* fTopLevelMessage; 39 BStackedMessageEventListener* 40 fStackedListener; 41}; 42 43 44} // namespace BPrivate 45 46using BPrivate::BJsonMessageWriter; 47 48#endif // _JSON_MESSAGE_WRITER_H 49