145 lines
1.9 KiB
C++
145 lines
1.9 KiB
C++
/*
|
|
* Copyright 2017, Andrew Lindesay <apl@lindesay.co.nz>
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
|
|
|
|
#include "JsonWriter.h"
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include <UnicodeChar.h>
|
|
|
|
|
|
BJsonWriter::BJsonWriter()
|
|
:
|
|
fErrorStatus(B_OK)
|
|
{
|
|
}
|
|
|
|
|
|
BJsonWriter::~BJsonWriter()
|
|
{
|
|
}
|
|
|
|
|
|
void
|
|
BJsonWriter::HandleError(status_t status, int32 line,
|
|
const char* message)
|
|
{
|
|
if(fErrorStatus == B_OK) {
|
|
if (message == NULL)
|
|
message = "?";
|
|
fErrorStatus = status;
|
|
fprintf(stderr, "! json err @line %" B_PRIi32 " - %s : %s\n", line,
|
|
strerror(status), message);
|
|
}
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::ErrorStatus()
|
|
{
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteBoolean(bool value)
|
|
{
|
|
if (value)
|
|
return WriteTrue();
|
|
|
|
return WriteFalse();
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteTrue()
|
|
{
|
|
Handle(BJsonEvent(B_JSON_TRUE));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteFalse()
|
|
{
|
|
Handle(BJsonEvent(B_JSON_FALSE));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteNull()
|
|
{
|
|
Handle(BJsonEvent(B_JSON_NULL));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteInteger(int64 value)
|
|
{
|
|
Handle(BJsonEvent(value));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteDouble(double value)
|
|
{
|
|
Handle(BJsonEvent(value));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteString(const char* value)
|
|
{
|
|
Handle(BJsonEvent(value));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteObjectStart()
|
|
{
|
|
Handle(BJsonEvent(B_JSON_OBJECT_START));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteObjectName(const char* value)
|
|
{
|
|
Handle(BJsonEvent(B_JSON_OBJECT_NAME, value));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteObjectEnd()
|
|
{
|
|
Handle(BJsonEvent(B_JSON_OBJECT_END));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteArrayStart()
|
|
{
|
|
Handle(BJsonEvent(B_JSON_ARRAY_START));
|
|
return fErrorStatus;
|
|
}
|
|
|
|
|
|
status_t
|
|
BJsonWriter::WriteArrayEnd()
|
|
{
|
|
Handle(BJsonEvent(B_JSON_ARRAY_END));
|
|
return fErrorStatus;
|
|
}
|
|
|