如何在CustusX插件中访问registrationService?

时间:2015-07-01 13:10:35

标签: plugins

在custusX中的自定义插件中,我使用mServices->patientModelService->getPatientLandmarks()->setLandmark以编程方式更改某些地标。我想用已经存在的卷执行注册。

LandmarkPatientRegistrationWidget的{​​{1}}中,org.custusx.registration.method.landmark来电performRegistration()

但是,我不确定我获取mServices.registrationService->doPatientRegistration()实例的方法是否正确。

到目前为止,我已将registrationService添加到CMakeLists.txt文件中,并添加了org_custusx_registration"cxRegistrationService.h"作为包含。

现在我可以定义<cxRegServices.h>并在构造函数中使用插件的RegServices mRegServices对其进行初始化。

但是,我是否创建了自己的注册服务,还是可以访问已有的注册服务?如何访问已经运行的注册服务?

1 个答案:

答案 0 :(得分:2)

您的方法正确地重用了现有的正在运行的注册服务。

CustusX的默认设置注册实现cx::RegistrationService接口的单实例(对象)。 cx::RegServices助手类包含cx::RegistrationServiceProxy,它充当引用对象的智能指针。服务对象仅由实现它们的插件创建:用户只需访问这些对象。

RegistrationServiceProxy使用ctkServiceTracker及相关类来实现它,例如参见this tutorial on OSGi,第5.4节(在java中,但原则适用)。

相关问题