Skip to content
Snippets Groups Projects
  1. Nov 08, 2016
  2. Nov 04, 2016
  3. Nov 02, 2016
    • Benedikt Hegner's avatar
      make IHiveWhiteBoard::getNumberOfStores() const · 92567c2b
      Benedikt Hegner authored
      See merge request !229
      92567c2b
    • Benedikt Hegner's avatar
      Add support for Handle const assignment from non const instances · 6d4d4389
      Benedikt Hegner authored
      Add support for copy assigning or constructing
      `XYZHandle<const T>` from a `XYZHandle<T>`. 
      
      Extended the test `MyGaudiAlg.py` test for this feature
      and `ToolHandle<const T>` support in general.
      
      Developed due to the discussion in !215
      
      See merge request !226
      6d4d4389
    • Benedikt Hegner's avatar
      Add a non const get() accessor to GaudiHandle · 88e33f06
      Benedikt Hegner authored
      To fix an issue with Atlas in !215
      
      See merge request !225
      88e33f06
    • Benedikt Hegner's avatar
      More efficient Toolhandle<T>::get() method · 61952b5b
      Benedikt Hegner authored
      I would like to use ToolHandle more, but I also want to use it optimally efficiently, by which I mean I want inline access to the underlying tool pointer, with no validity checks (I always `retrieve()` my tools up front in initialize()) and true const behaviour (for thread safety). Essentially what I want is `GaudiHandle<T>::get()`, but unfortunately in the current implementation this method is hidden behind the virtual `ToolHandle<T>::get()` method, that also down casts the tool to `IAlgTool*` (so no use for direct usage).
      
      This MR fixes both these issues. get() is now fully optimal in `ToolHandle<T>` as it simply refers back to GaudiHandle in an inline method.
      
      The `BaseToolHandle<T>::get()` method is just a wrapper that calls a hidden (protected) virtual function (`getAsIAlgTool()`) that returns what get() previously did.
      
      I also tightened up the const'ness, providing both const and non-const methods that return const and non-const tool pointers respectively.
      
      I also updated a few methods to remove multiple return statements (which normally cause compilers to abort inlining) and adding some `noexcept` here and there..
      
      The only API change is that `ToolHandle<T>::get()` now returns `T*` instead of `IAlgTool*`, but this is not a problem as the user can still choose to use it as a `IAlgTool*` if they want..
      
      Gaudi master builds fine with this, not tested any other projects yet.
      
      cheers Chris
      
      See merge request !218
      61952b5b
  4. Nov 01, 2016
  5. Oct 31, 2016
  6. Oct 30, 2016
Loading