CereLink icon indicating copy to clipboard operation
CereLink copied to clipboard

Eliminate Qt from CCFUtils

Open cboulay opened this issue 2 years ago • 0 comments

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.

cboulay avatar Jun 24 '23 03:06 cboulay