Example #1
0
celix_status_t bundleActivator_start(void * userData, bundle_context_pt context) {
	celix_status_t status = CELIX_SUCCESS;
	bundle_activator_pt activator = (bundle_activator_pt) userData;

	char *name = NULL;
	char *uuid = NULL;
	char uuidName[128];
	memset(uuidName, 0, 128);

	bundleContext_getProperty(context, "inaetics.demonstrator.producer.name", &name);
	bundleContext_getProperty(context, OSGI_FRAMEWORK_FRAMEWORK_UUID, &uuid);

	if (name != NULL) {
		snprintf(uuidName, 128, "%s %s",PRODUCER_STATS_SERVICE_NAME_PREFIX, name);
	}
	else if (name == NULL && uuid != NULL) {
		snprintf(uuidName, 128, "%s %.8s",PRODUCER_STATS_SERVICE_NAME_PREFIX, uuid);
	} else {
		snprintf(uuidName, 128, "%s (unknown ID)",PRODUCER_STATS_SERVICE_NAME_PREFIX);
	}

	printf("PRODUCER: Starting bundle...\n");

	status = producer_create(uuidName, &activator->producer);

	if (status == CELIX_SUCCESS) {
		if  (bundleActivator_createProducerService(activator) != CELIX_SUCCESS || bundleActivator_registerProducerService(activator) != CELIX_SUCCESS) {
			printf("PRODUCER: Error creating/registering producerService\n");
		}
	}

	if (status == CELIX_SUCCESS) {

		bundleActivator_createStatsService(activator);

		if (activator->producerStatsService != NULL) {
			bundleActivator_registerStatsService(activator);
		}

		if (activator->producerStatsService == NULL || activator->producerStatsRegistration == NULL) {
			printf("PRODUCER: Error creating/registering statService\n");
		} else {
			printf("PRODUCER: Created producer with name %s\n", uuidName);
		}

	}

	service_tracker_customizer_pt customizer = NULL;
	serviceTrackerCustomizer_create(activator->producer, NULL, producer_queueServiceAdded, NULL, producer_queueServiceRemoved, &customizer);

	serviceTracker_create(context, INAETICS_DEMONSTRATOR_API__SAMPLE_QUEUE_SERVICE_NAME, customizer, &activator->tracker);
	serviceTracker_open(activator->tracker);

	return status;
}
Example #2
0
int main()
{
    srand(time(NULL));
    HANDLE mutex = CreateMutex(NULL, FALSE, NULL);

    array_t *array = array_create(4);
    consumer_t *consumer1 = consumer_create(array, mutex, 1);
    consumer_t *consumer2 = consumer_create(array, mutex, 2);
    producer_t *producer1 = producer_create(array, mutex);
    producer_t *producer2 = producer_create(array, mutex);

    Sleep(5000);

    consumer_destroy(consumer1);
    consumer_destroy(consumer2);
    producer_destroy(producer1);
    producer_destroy(producer2);
    CloseHandle(mutex);

    return 0;
}
Example #3
0
int main(void){
	srand(time(NULL));

	numbers_t * numbers = numbers_create();                             //consumer.c


	producer_t prod1 = producer_create(numbers);
	consumer_t cons1 = consumer_create(numbers);
	producer_t prod2 = producer_create(numbers);
	consumer_t cons2 = consumer_create(numbers);

	consumer_join(cons2);


	producer_destructor(prod1);
	consumer_destructor(cons1);
	producer_destructor(prod2);
	consumer_destructor(cons2);
	numbers_destructor(numbers);                                        //consumer.c


	return 0;
}