celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) { printf("PHASE1: dm_init\n"); celix_status_t status = CELIX_SUCCESS; struct phase1_activator_struct *act = (struct phase1_activator_struct *)userData; act->phase1Cmp = phase1_create(); if (act->phase1Cmp != NULL) { act->phase1Serv.handle = act->phase1Cmp; act->phase1Serv.getData = (void *)phase1_getData; properties_pt props = properties_create(); properties_set(props, "id", "phase1"); dm_component_pt cmp; component_create(context, "PHASE1_PROCESSING_COMPONENT", &cmp); component_setImplementation(cmp, act->phase1Cmp); component_setCallbacksSafe(cmp, phase1_cmp_t *, phase1_init, phase1_start, phase1_stop, phase1_deinit); component_addInterface(cmp, PHASE1_NAME, &act->phase1Serv, props); dependencyManager_add(manager, cmp); } else { status = CELIX_ENOMEM; } return status; }
celix_status_t dm_init(void *userData, bundle_context_pt context, dm_dependency_manager_pt manager) { celix_status_t status = CELIX_SUCCESS; struct activator *activator = userData; dm_component_pt cmp = NULL; component_create(context, "BAR", &cmp); component_setImplementation(cmp, activator->bar); component_addInterface(cmp, EXAMPLE_NAME, EXAMPLE_VERSION, &activator->exampleService, NULL); dependencyManager_add(manager, cmp); return status; }
celix_status_t dm_init(void * userData, bundle_context_pt context, dm_dependency_manager_pt manager) { printf("phase2a: dm_init\n"); celix_status_t status = CELIX_SUCCESS; struct phase2a_activator_struct *act = (struct phase2a_activator_struct *)userData; act->phase2aCmp = phase2a_create(); if (act->phase2aCmp != NULL) { act->phase2Serv.handle = act->phase2aCmp; act->phase2Serv.getData = (void *)phase2a_getData; properties_pt props = properties_create(); properties_set(props, "id", "phase2a"); dm_component_pt cmp; component_create(context, "PHASE2A_PROCESSING_COMPONENT", &cmp); component_setImplementation(cmp, act->phase2aCmp); component_setCallbacksSafe(cmp, phase2a_cmp_t *, phase2a_init, phase2a_start, phase2a_stop, phase2a_deinit); component_addInterface(cmp, PHASE2_NAME, PHASE2_VERSION, &act->phase2Serv, props); dm_service_dependency_pt dep; serviceDependency_create(&dep); serviceDependency_setService(dep, PHASE1_NAME, PHASE1_RANGE_ALL, NULL); serviceDependency_setCallbacksSafe(dep, phase2a_cmp_t *, phase1_t *, phase2a_setPhase1, NULL, NULL, NULL, NULL); serviceDependency_setRequired(dep, true); component_addServiceDependency(cmp, dep); dependencyManager_add(manager, cmp); } else { status = CELIX_ENOMEM; } return status; }