view data-provider.c @ 239:ec81395bf08d

Solve name collisions and other problems caused by including Windows headers
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Thu, 12 Feb 2015 19:13:55 +0100
parents 97112b45b838
children
line wrap: on
line source

#include <ansi_c.h>
#include <userint.h>

#include "logging.h"

/* message buffer */
#define DATA_PROVIDER_MSGLEN 256
#define DATA_PROVIDER_MSGNUM 16
static char messages[DATA_PROVIDER_MSGLEN][DATA_PROVIDER_MSGNUM];
static unsigned int messageid = 0;


/* message callback */
static void CVICALLBACK send_message_callback(void *msg)
{
	if (msg != NULL)
		logmessage(INFO, msg);
}


void send_message(int thread, const char *frmt, ...)
{
	/* message buffer */
	char *message = messages[messageid++ % DATA_PROVIDER_MSGNUM];
	
	/* format message */
	va_list args;
	va_start(args, frmt);
	vsnprintf(message, DATA_PROVIDER_MSGLEN - 1, frmt, args);
	va_end(args);
	
	/* signal main thread */
	PostDeferredCallToThread(send_message_callback, message, thread);
}