celix_status_t bundle_startWithOptions(bundle_pt bundle, int options) { celix_status_t status = CELIX_SUCCESS; if (bundle != NULL) { bool systemBundle = false; status = bundle_isSystemBundle(bundle, &systemBundle); if (status == CELIX_SUCCESS) { if (systemBundle) { framework_start(bundle->framework); } else { status = fw_startBundle(bundle->framework, bundle, options); } } } framework_logIfError(bundle->framework->logger, status, NULL, "Failed to start bundle"); return status; }
/************************************************* 主函数 *************************************************/ int main() { int ret = 0; int i; PRINTF("BUILD:%s, %s\n\n", __DATE__, __TIME__); //对象类初始化,手工写也行,自动生成也行 aaa.base.baseft = &aaa_ft; aaa.base.thread = 1; aaa.base.prio = 1; bbb.base.baseft = &bbb_ft; bbb.base.thread = 5; bbb.base.prio = 3; disp.base.baseft = &disp_ft; disp.base.thread = 6; disp.base.prio = 6; device_test.base.baseft = &device_test_ft; device_test.base.thread = 8; device_test.base.prio = 10; //初始化平台 ret = framework_init(); if (ret) { //错误处理 goto error; } PRINTF("%s:%d\n\n", __FILE__, __LINE__); //初始化业务模块模型 for (i = 0; i < sizeof(objects)/ sizeof(objects[0]); i++) { ret = objects[i]->baseft->initmodel(objects[i]); if (ret) { goto error; } } //初始化业务模块数据 for (i = 0; i < sizeof(objects)/ sizeof(objects[0]); i++) { ret = objects[i]->baseft->initdata(objects[i]); if (ret) { goto error; } } //启动平台框架 ret = framework_start(); if (ret) { //错误处理 goto error; } PRINTF("%s:%d\n\n", __FILE__, __LINE__); while(1) { sleep(1000); } error: PRINTF("main err\n"); return 0; }