Beispiel #1
0
void test_arrayList_addAll(void) {
    char * entry = "entry";
    char * entry2 = "entry2";
    char * entry3 = "entry3"; 
    char * get;
	array_list_pt toAdd;
	bool changed;
	
	arrayList_clear(list);

	arrayList_create(&toAdd);
    arrayList_add(toAdd, entry);
    arrayList_add(toAdd, entry2);

    arrayList_add(list, entry3);

    get = arrayList_get(list, 0);
    CU_ASSERT_EQUAL(entry3, get);

    changed = arrayList_addAll(list, toAdd);
    CU_ASSERT_TRUE(changed);
    CU_ASSERT_EQUAL(arrayList_size(list), 3);

    get = arrayList_get(list, 1);
    CU_ASSERT_EQUAL(entry, get);

    get = arrayList_get(list, 2);
    CU_ASSERT_EQUAL(entry2, get);
}
Beispiel #2
0
celix_status_t driverLoader_loadDriverForLocator(driver_loader_pt loader, driver_locator_service_pt locator, char *driverId, array_list_pt *references) {
	celix_status_t status = CELIX_SUCCESS;
	//The list is created in the bundle_getRegisteredServices chain
	//arrayList_create(references);

	char *filename = NULL;
	status = locator->loadDriver(locator->locator, driverId, &filename);
	if (status == CELIX_SUCCESS) {
		bundle_pt bundle = NULL;
		int length = strlen(DRIVER_LOCATION_PREFIX) + strlen(driverId);
		char location[length];
		snprintf(location, length, "%s%s", DRIVER_LOCATION_PREFIX, driverId);
		status = bundleContext_installBundle2(loader->context, location, filename, &bundle);
		if (status == CELIX_SUCCESS) {
			status = bundle_start(bundle);
			if (status == CELIX_SUCCESS) {
				status = bundle_getRegisteredServices(bundle, references);
				if (status == CELIX_SUCCESS) {
					arrayList_addAll(loader->loadedDrivers, *references);
				}
			}
		}
	}

	return status;
}
celix_status_t wiringTopologyManager_getWAs(wiring_topology_manager_pt manager, array_list_pt *waList) {
    celix_status_t status = CELIX_SUCCESS;

    status = arrayList_create(waList);
    if (status != CELIX_SUCCESS) {
        return CELIX_ENOMEM;
    }

    status = celixThreadMutex_lock(&manager->waListLock);
    arrayList_addAll(*waList, manager->waList);
    status = celixThreadMutex_unlock(&manager->waListLock);

    return status;
}
Beispiel #4
0
celix_status_t driverLoader_findDrivers(driver_loader_pt loader, array_list_pt locators, properties_pt properties, array_list_pt *driversIds) {
	celix_status_t status = CELIX_SUCCESS;
	arrayList_create(driversIds);

	int i;
	for (i = 0; i < arrayList_size(locators); i++) {
		array_list_pt drivers;
		driver_locator_service_pt locator = arrayList_get(locators, i);

		status = driverLoader_findDriversForLocator(loader, locator, properties, &drivers);
		if (status == CELIX_SUCCESS) {
			arrayList_addAll(*driversIds, drivers);
		}
		arrayList_destroy(drivers);
	}

	return status;
}
Beispiel #5
0
celix_status_t driverLoader_loadDrivers(driver_loader_pt loader, array_list_pt locators, array_list_pt driverIds, array_list_pt *references) {
	celix_status_t status = CELIX_SUCCESS;
	status = arrayList_create(references);
	if (status == CELIX_SUCCESS) {
		int i;
		for (i = 0; i < arrayList_size(driverIds); i++) {
			array_list_pt refs = NULL;
			char *id = arrayList_get(driverIds, i);

			status = driverLoader_loadDriver(loader, locators, id, &refs);
			if (status == CELIX_SUCCESS) {
				arrayList_addAll(*references, refs);
			}
			if (refs != NULL) {
				arrayList_destroy(refs);
			}
		}
	}

	return status;
}