You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2015/11/03 12:09:53 UTC
[16/21] celix git commit: CELIX-269: Changed the component add
service dependency function from vararg to non vararg
CELIX-269: Changed the component add service dependency function from vararg to non vararg
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/02c56310
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/02c56310
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/02c56310
Branch: refs/heads/develop
Commit: 02c56310348cf341c0d4c2bf43c6a373fcb05246
Parents: d040f00
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Thu Oct 29 16:43:50 2015 +0100
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Thu Oct 29 16:43:50 2015 +0100
----------------------------------------------------------------------
dependency_manager/private/src/dm_component_impl.c | 10 +++++++---
dependency_manager/public/include/dm_component.h | 2 +-
.../tracker_depman/private/src/dependency_activator.c | 4 ++--
3 files changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/02c56310/dependency_manager/private/src/dm_component_impl.c
----------------------------------------------------------------------
diff --git a/dependency_manager/private/src/dm_component_impl.c b/dependency_manager/private/src/dm_component_impl.c
index ec13933..a36e232 100644
--- a/dependency_manager/private/src/dm_component_impl.c
+++ b/dependency_manager/private/src/dm_component_impl.c
@@ -166,23 +166,25 @@ celix_status_t component_destroy(dm_component_pt *component_ptr) {
return status;
}
-celix_status_t component_addServiceDependency(dm_component_pt component, ...) {
+celix_status_t component_addServiceDependency(dm_component_pt component, dm_service_dependency_pt dep) {
celix_status_t status = CELIX_SUCCESS;
array_list_pt dependenciesList = NULL;
arrayList_create(&dependenciesList);
+ arrayList_add(dependenciesList, dep);
+ /*
va_list dependencies;
va_start(dependencies, component);
dm_service_dependency_pt dependency = va_arg(dependencies, dm_service_dependency_pt);
while (dependency != NULL) {
arrayList_add(dependenciesList, dependency);
-
dependency = va_arg(dependencies, dm_service_dependency_pt);
}
va_end(dependencies);
+ */
executor_executeTask(component->executor, component, component_addTask, dependenciesList);
// component_addTask(component, dependenciesList);
@@ -1351,12 +1353,14 @@ celix_status_t component_getComponentInfo(dm_component_pt component, dm_componen
celixThreadMutex_lock(&component->mutex);
size = arrayList_size(component->dependencies);
- for (i = 0; status == CELIX_SUCCESS && i < size; i += 1) {
+ for (i = 0; i < size; i += 1) {
dm_service_dependency_pt dep = arrayList_get(component->dependencies, i);
dm_service_dependency_info_pt depInfo= NULL;
status = serviceDependency_getServiceDependencyInfo(dep, &depInfo);
if (status == CELIX_SUCCESS) {
arrayList_add(info->dependency_list, depInfo);
+ } else {
+ break;
}
}
celixThreadMutex_unlock(&component->mutex);
http://git-wip-us.apache.org/repos/asf/celix/blob/02c56310/dependency_manager/public/include/dm_component.h
----------------------------------------------------------------------
diff --git a/dependency_manager/public/include/dm_component.h b/dependency_manager/public/include/dm_component.h
index 12dbcca..cf709cd 100644
--- a/dependency_manager/public/include/dm_component.h
+++ b/dependency_manager/public/include/dm_component.h
@@ -55,7 +55,7 @@ celix_status_t component_setImplementation(dm_component_pt component, void *impl
*/
celix_status_t component_getInterfaces(dm_component_pt component, array_list_pt *servicesNames);
-celix_status_t component_addServiceDependency(dm_component_pt component, ...);
+celix_status_t component_addServiceDependency(dm_component_pt component, dm_service_dependency_pt dep);
celix_status_t component_removeServiceDependency(dm_component_pt component, dm_service_dependency_pt dependency);
celix_status_t component_setCallbacks(dm_component_pt component, init_fpt init, start_fpt start, stop_fpt stop, deinit_fpt deinit);
http://git-wip-us.apache.org/repos/asf/celix/blob/02c56310/examples/whiteboard/tracker_depman/private/src/dependency_activator.c
----------------------------------------------------------------------
diff --git a/examples/whiteboard/tracker_depman/private/src/dependency_activator.c b/examples/whiteboard/tracker_depman/private/src/dependency_activator.c
index 4e36321..2ce9bab 100644
--- a/examples/whiteboard/tracker_depman/private/src/dependency_activator.c
+++ b/examples/whiteboard/tracker_depman/private/src/dependency_activator.c
@@ -62,14 +62,14 @@ celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency
serviceDependency_setRequired(dep1, true);
serviceDependency_setService(dep1, PUBLISHER_NAME, "(|(id=A)(id=B))");
serviceDependency_setCallbacksWithServiceReference(dep1, NULL /*tracker_setServ*/, tracker_addedServ, tracker_modifiedServ, tracker_removedServ, NULL);
- component_addServiceDependency(service, dep1, NULL);
+ component_addServiceDependency(service, dep1);
serviceDependency_create(&dep2);
serviceDependency_setRequired(dep2, false);
serviceDependency_setService(dep2, (char *) OSGI_LOGSERVICE_NAME, NULL);
serviceDependency_setCallbacksWithServiceReference(dep2, NULL /*tracker_setLog*/, tracker_addLog, tracker_modifiedLog, tracker_removeLog, NULL);
serviceDependency_setAutoConfigure(dep2, &data->logger_lock, (void **) &data->logger);
- component_addServiceDependency(service, dep2, NULL);
+ component_addServiceDependency(service, dep2);
data->service = service;
data->dep = dep1;