Various improvements in lifetime management
Most of the changes are in CORAL_SERVER, though there is one small fix in MySQLAccess. CORAL_SERVER has many changes to modernize C++ and better track objects on heap:
- all
auto_ptr
were replaced withunique_ptr
- many ownership-tracking bare pointers were replaces with
unique_ptr
too - remaining bare pointers should mean non-owning pointers
- use
override
keyword where appropriate - few memory leaks were fixed
I tried to apply these policies consistently to all CORAL_SERVER code, but I'm sure there still things to improve.
MySQLAccess fix is trivial, it's needed to avoid memory leaks when exceptions are generated by SQL (this happens e.g. in nightly tests).
All changes have been tested, we are actually running CoralServer for nightly tests (on atlas-coral-01) from this branch.