CereLink
CereLink copied to clipboard
Eliminate Qt from CCFUtils
I mostly extracted CCFUtils as a standalone lib. Then I replaced QtXML usage with pugixml. I also replaced all other Qt types with STL types.
Caveats:
- Isolation of CCFUtils is limited to being a PUBLIC dependency because the top-level cbSdk headers use CCFUtils' types.
- CCFUtils no longer does device communication.
- Functions that previously did a load-from-file-then-send-to-device were bookended by callbacks to indicate start and completion; now the callbacks only bookend the load-from-file part.
- The QtXML to pugixml conversion needs to be tested.
- The CCFWrite coroutine previously was set to lowest priority and no there is no priority set on it.
- Replacing QVariant with std::any may incur a performance hit. Luckily we don't load or write the CCF often.
- The QtXML -> pugixml conversion that was done aimed to be mostly 1:1. We can probably better leverage the pugixml API.
- It would probably be better to add cbPKT_PROCINFO to cbCCF struct, instead of my solution which was to add members and methods to set a procinfo store on the m_pImpl which was then used during CCF writing.
I'm leaving this PR as a draft for now until I can test CCF management on multiple platforms.