Fixed
Pinned fields
Click on the next to a field label to start pinning.
Details
Components
Assignee
Richard ChapmanRichard ChapmanReporter
Gavin HallidayGavin HallidayPriority
MajorFix versions
Details
Details
Components
Assignee
Richard Chapman
Richard ChapmanReporter
Gavin Halliday
Gavin HallidayPriority
Fix versions
Created July 14, 2017 at 10:16 AM
Updated September 18, 2017 at 3:10 PM
Resolved September 18, 2017 at 3:10 PM
Currently the code in eclhelper_base.hpp is structured so that the entire base classes are compiled into each query. The main reason is so that if selectInterface() is called it calls the function that was defined at query compile time - so that new interfaces can be transparently be added to helpers without causing recompiling.
However it has several disadvantages
code in the platform that uses it needs to include the header file within a namespace.
the generated queries are much larger since they contain all the class definitions, rather than calling code in another dll
Now that we have adopted the model that point releases never require code to be recompiled, and minor releases often do, the need for this is significantly reduced.
Suggestion is to
change the classes so they are exported from eclrtl rather than inline
move the virtual functions and constructors so they are defined in eclhelper_base.cpp - reducing generated code size, and compile time
possibly add a new getHelperFlags() function to the base helper to provide an alternative way of extending interfaces without requiring recompilation. It could also be used for any flags that are common to all activities.