Consider refactoring eclhelper_base.hpp

Description

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.

Conclusion

None

Activity

Show:
Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Components

Assignee

Reporter

Priority

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

Flag notifications