Let's use rapidjson instead of roll-your-own json. Added helpers to keep allocations minimized.

This commit is contained in:
Chris Marsh
2017-07-20 13:24:18 -07:00
parent 12054246a2
commit 79d70b8bae
6 changed files with 234 additions and 224 deletions

View File

@@ -1,10 +1,8 @@
#include "discord-rpc.h"
#include "rpc_connection.h"
#include "yolojson.h"
#include "backoff.h"
#include "rapidjson/document.h"
#include "rpc_connection.h"
#include "serialization.h"
#include <atomic>
#include <chrono>
@@ -126,7 +124,7 @@ extern "C" void Discord_Initialize(const char* applicationId, DiscordEventHandle
};
Connection->onDisconnect = [](int err, const char* message) {
LastErrorCode = err;
StringCopy(LastErrorMessage, message, sizeof(LastErrorMessage));
StringCopy(LastErrorMessage, message);
WasJustDisconnected.exchange(true);
UpdateReconnectTime();
};
@@ -155,9 +153,7 @@ extern "C" void Discord_UpdatePresence(const DiscordRichPresence* presence)
{
auto qmessage = SendQueueGetNextAddMessage();
if (qmessage) {
char* jsonWrite = qmessage->buffer;
JsonWriteRichPresenceObj(jsonWrite, presence);
qmessage->length = jsonWrite - qmessage->buffer;
qmessage->length = JsonWriteRichPresenceObj(qmessage->buffer, sizeof(qmessage->buffer), presence);
SendQueueCommitMessage();
SignalIOActivity();
}