Stottlemyer, Brett (B.S.)
2017-01-09 14:50:52 UTC
As the maintainer for the Qt Remote Objects (QtRO) playground project, I would like to officially request moving it from a playground project to a Qt project. For now (Qt 5.9), Iâd like to keep it as a Tech Preview, as there are some elements of the API we would still like to extend, and weâd certainly like to protect for changes based on additional feedback.
In a nutshell, Qt Remote Objects takes the mechanisms that Qt already provides for multithreaded processing (Queued connections, marshaling arguments) and extends them to allow QObjects to work across process and/or device boundaries. It does this by allowing a Source object (with a full implementation of the Qt Properties, Signals and Slots) to be shared on the QtRO bus. Replica versions of this object can be acquired, where QtRO handles sending any changes to the Source to all Replicas. I think of the Replicas as âlatent copiesâ of the original object. This seems like a great extension to Qt, and based on discussions at the last Qt World Summit, one that is makes sense to have as an official Qt module.
From a maturity standpoint, it has been running as a playground project for several years now. We have several platforms checked via our own CI, but would like to get coverage on all supported platforms and will certainly address any issues found. Giuseppe DâAngelo was kind enough to add QtRO to the Qt LTS Coverity scans, and except for several issues tied to a copy of moc, it is in good shape. It supports qmake docs, although the docs need some care and feeding (this is ok for a Tech Preview as I understand it).
If this request is well received, I do have one sub-request. According to http://wiki.qt.io/Creating_a_new_module_or_tool_for_Qt, âthe playground name needs to be changed to a descriptive Qt module or tool name.â The current name is qtremoteobjects. Are there issues keeping this name?
Thanks for your consideration,
Brett
In a nutshell, Qt Remote Objects takes the mechanisms that Qt already provides for multithreaded processing (Queued connections, marshaling arguments) and extends them to allow QObjects to work across process and/or device boundaries. It does this by allowing a Source object (with a full implementation of the Qt Properties, Signals and Slots) to be shared on the QtRO bus. Replica versions of this object can be acquired, where QtRO handles sending any changes to the Source to all Replicas. I think of the Replicas as âlatent copiesâ of the original object. This seems like a great extension to Qt, and based on discussions at the last Qt World Summit, one that is makes sense to have as an official Qt module.
From a maturity standpoint, it has been running as a playground project for several years now. We have several platforms checked via our own CI, but would like to get coverage on all supported platforms and will certainly address any issues found. Giuseppe DâAngelo was kind enough to add QtRO to the Qt LTS Coverity scans, and except for several issues tied to a copy of moc, it is in good shape. It supports qmake docs, although the docs need some care and feeding (this is ok for a Tech Preview as I understand it).
If this request is well received, I do have one sub-request. According to http://wiki.qt.io/Creating_a_new_module_or_tool_for_Qt, âthe playground name needs to be changed to a descriptive Qt module or tool name.â The current name is qtremoteobjects. Are there issues keeping this name?
Thanks for your consideration,
Brett