예제 #1
0
void deinit()
{
    RenderBatch_delete(renderBatch);
    glfwTerminate();
    Log_terminate();
    StdoutConsole_delete(console);
}
예제 #2
0
int main()
{
    fprintf(stderr, "Testing image loading and saving.\n");
    Log_init();
    
    Image* myimage = Image_newFromData(reference, sizeof(reference), 4, 4, 4);
    
    if (!Image_saveToFile(myimage, "test-image.png"))
    {
        fprintf(stderr, "Saving image failed.\n");
        Image_delete(myimage);
        return 1;
    }
    
    Image* image = Image_new();
    if (!Image_loadFromFile(image, "test-image.png"))
    {
        fprintf(stderr, "Loading image failed.\n");
        Image_delete(image);
        return 1;
    }
    
    if (image->width * image->height * image->channels != image->size)
    {
        fprintf(stderr, "Image size incorrect.\n");
        fprintf(stderr, "Image width: %i, height: %i, channels: %i, size %i \n", image->width, image->height, image->channels, image->size);
        return 1;
    }
    
    int i;
    int j;
    int k;
    for(i = 0; i < image->height; i++)
    {
        for(j = 0; j < image->width; j++)
        {
            for(k = 0; k < image->channels; k++)
            {
                if (image->data[(i * image->channels * image->width) + (j * image->channels) + k] != reference[(i * image->channels * image->width) + (j * image->channels) + k])
                {
                    fprintf(stderr, "Image loaded is not the same as refrence at (%i, %i, %i)\n", i, j, k);
                    return 1;
                }
            }
        }
    }
    
    Image_delete(image);

    Log_terminate();

    return 0;
}
예제 #3
0
void MQTTClient_terminate(void)
{
	FUNC_ENTRY;
	MQTTClient_stop();
	if (initialized)
	{
		ListFree(bstate->clients);
		ListFree(handles);
		handles = NULL;
		Socket_outTerminate();
		#if defined(HEAP_H)
			Heap_terminate();
		#endif
		Log_terminate();
		initialized = 0;
	}
	FUNC_EXIT;
}
예제 #4
0
파일: Broker.c 프로젝트: Frank-KunLi/rsmb
/**
 * Main broker startup function
 * @param argc number of elements of argv
 * @param argv command line strings
 * @return system return code
 */
int main(int argc, char* argv[])
{
	int rc = 0;
#define BUILD_TIMESTAMP __DATE__ " " __TIME__ /* __TIMESTAMP__ */
#define BROKER_VERSION "1.2.0.12" /* __VERSION__ */
#define PRODUCT_NAME "MQTT Daemon for Devices"

	static char* broker_version_eye = NULL;
	static char* broker_timestamp_eye = NULL;

	FUNC_ENTRY_NOLOG;
	broker_timestamp_eye = "AMQTDD_Timestamp " BUILD_TIMESTAMP;
	broker_version_eye = "AMQTDD_Version " BROKER_VERSION;
	BrokerState.version = BROKER_VERSION;
	BrokerState.timestamp = BUILD_TIMESTAMP;
	
	srand(time(NULL));

	Heap_initialize();
	Log_initialize();

	Log(LOG_INFO, 9999, PRODUCT_NAME);
	Log(LOG_INFO, 9998, "Part of Project Mosquitto in Eclipse\n("
                      "http://projects.eclipse.org/projects/technology.mosquitto)");
	getopts(argc, argv);

	if (Messages_initialize(&BrokerState) != 0)
		goto no_messages;

	Log(LOG_INFO, 53, NULL, BrokerState.version, BrokerState.timestamp);
	Log(LOG_INFO, 54, "%s %s", Messages_get(54, LOG_INFO), "" 
#if !defined(NO_BRIDGE)
	" bridge"
#endif
#if defined(MQTTMP)
	" MQTTMP"
#endif
#if defined(MQTTS)
	" MQTTS"
#endif
	);

	if ((rc = Broker_startup()) == 0)
	{
		SubscriptionEngines_setRetained(BrokerState.se, "$SYS/broker/version", 0,
			BrokerState.version, strlen(BrokerState.version));
		SubscriptionEngines_setRetained(BrokerState.se, "$SYS/broker/timestamp", 0,
					BrokerState.timestamp, strlen(BrokerState.timestamp));
		while (BrokerState.state == BROKER_RUNNING)
		{
			Protocol_timeslice();
			#if !defined(NO_BRIDGE)
				Bridge_timeslice(&BrokerState.bridge);
			#endif
		}
		Log(LOG_INFO, 46, NULL);
		#if !defined(NO_BRIDGE)
			Bridge_stop(&BrokerState.bridge);
		#endif
		while (BrokerState.state == BROKER_STOPPING)
		{
			Protocol_timeslice();
			#if !defined(NO_BRIDGE)
				Bridge_timeslice(&BrokerState.bridge);
			#endif
		}
	}
	Broker_shutdown(rc);

	Log(LOG_INFO, 47, NULL);

no_messages:
	Messages_terminate();
	Log_terminate();
	Heap_terminate();

	/*FUNC_EXIT_NOLOG(rc); would anyone ever see this? */
	return rc;
}
예제 #5
0
파일: AllTests.c 프로젝트: linusonline/smug
void deinitTest()
{
    Log_terminate();
    StdoutConsole_delete(console);
}
예제 #6
0
/**
 * Main broker startup function
 * @param argc number of elements of argv
 * @param argv command line strings
 * @return system return code
 */
int main(int argc, char* argv[])
{
	int rc = 0;
#define BUILD_TIMESTAMP __DATE__ " " __TIME__ /* __TIMESTAMP__ */
#define BROKER_VERSION "1.3.0.2" /* __VERSION__ */
#define PRODUCT_NAME "Really Small Message Broker"

	static char* broker_version_eye ATTR_UNUSED = NULL;
	static char* broker_timestamp_eye ATTR_UNUSED = NULL;

	FUNC_ENTRY_NOLOG;
	broker_timestamp_eye = "RSMB_Timestamp " BUILD_TIMESTAMP;
	broker_version_eye = "RSMB_Version " BROKER_VERSION;
	BrokerState.version = BROKER_VERSION;
	BrokerState.timestamp = BUILD_TIMESTAMP;

	Heap_initialize();
	Log_initialize();

	Log(LOG_INFO, 9999, PRODUCT_NAME);
	Log(LOG_INFO, 9998, "Part of Project Mosquitto in Eclipse\n("
                      "http://projects.eclipse.org/projects/technology.mosquitto)");
	getopts(argc, argv);

	if (Messages_initialize(&BrokerState) != 0)
		goto no_messages;

	Log(LOG_INFO, 53, "Version %s, %s", BrokerState.version, BrokerState.timestamp);
	Log(LOG_INFO, 54, "Features included: %s", features);
	Log(LOG_INFO, 9993, "Authors: Ian Craggs ([email protected]), Nicholas O'Leary");

	if ((rc = Broker_startup()) == 0)
	{
		SubscriptionEngines_setRetained(BrokerState.se, "$SYS/broker/version", 0,
			BrokerState.version, strlen(BrokerState.version));
		SubscriptionEngines_setRetained(BrokerState.se, "$SYS/broker/timestamp", 0,
					BrokerState.timestamp, strlen(BrokerState.timestamp));
		while (BrokerState.state == BROKER_RUNNING)
		{
			Protocol_timeslice();
			#if !defined(NO_BRIDGE)
				Bridge_timeslice(&BrokerState.bridge);
			#endif
		}
		Log(LOG_INFO, 46, NULL);
		#if !defined(NO_BRIDGE)
			Bridge_stop(&BrokerState.bridge);
		#endif
		while (BrokerState.state == BROKER_STOPPING)
		{
			Protocol_timeslice();
			#if !defined(NO_BRIDGE)
				Bridge_timeslice(&BrokerState.bridge);
			#endif
		}
	}
	Broker_shutdown(rc);

	Log(LOG_INFO, 47, NULL);

no_messages:
	Messages_terminate();
	Log_terminate();
	Heap_terminate();

	/*FUNC_EXIT_NOLOG(rc); would anyone ever see this? */
	return rc;
}