コード例 #1
0
ファイル: phase1_activator.c プロジェクト: leckie711/celix
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;
}
コード例 #2
0
ファイル: bar_activator.c プロジェクト: apache/celix
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;
}
コード例 #3
0
ファイル: phase2a_activator.c プロジェクト: ErjanAltena/celix
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;
}