/*******************************************************************************
 * Copyright (c) 2019 protos software gmbh (http://www.protos.de).
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * CONTRIBUTORS:
 * 		Henrik Rentz-Reichert (initial contribution)
 *
 *******************************************************************************/

#include <stdio.h>
#include "debugging/etConsoleLogger.h"

#define BUFFER_SIZE		1024
static char buffer[BUFFER_SIZE];

etLogger theConsoleLogger;
static etBufferSender theConsoleSender;

/*
 * console sender with fixed buffer (may need synchronization)
 */

static void* etConsoleSender_getBuffer(etBufferSender* self, size_t size) {
	if (size<BUFFER_SIZE) {
		return buffer;
	}
	else {
		return NULL;
	}
}

void etConsoleSender_sendBuffer(etBufferSender* self, void* buffer, size_t size) {
	fprintf(stdout, "%s", (char*) buffer);
	fflush(stdout);
}


void etConsoleLogger_init() {
	static etBool initialized = ET_FALSE;
	if (!initialized) {
		initialized = ET_TRUE;

		theConsoleSender.getBuffer = etConsoleSender_getBuffer;
		theConsoleSender.sendBuffer = etConsoleSender_sendBuffer;

		etLogger_init(&theConsoleLogger, &theConsoleSender);

		etLogger_setAppendNewline(&theConsoleLogger, ET_TRUE);
		etLogger_setUsePrefix(&theConsoleLogger, ET_TRUE);
	}
}
