![]() |
The Gaudi Framework
v29r0 (ff2e7097)
|
Package : GaudiKernel
Package manager : Marco Clemencic
Commit Id: $Format:%H$
================================ Gaudi v28r3 =================================
! 2017-07-28 - Marco Clemencic (commit 3cd763ce)
- Merge branch 'tool-and-data-handles-constructor' into 'master'
Autodeclaring constructors for ToolHandle and DataObjectHandle
See merge request !374
! 2017-07-27 - Marco Clemencic (commit 84f92c31)
- Merge branch 'cmake-updates' into 'master'
minor updates/fixes
See merge request !373
! 2017-07-26 - Marco Clemencic, charles leggett (commit 22f22a3b)
- Merge branch 'dev/PropHelpers' into 'master'
Property helpers for DataHandles and derived classes
See merge request !365# Please enter a commit message to explain why this
merge is necessary,
! 2017-07-26 - Gerhard Raven (commit e6fc7ad5)
- Merge branch 'allow-adl-lookup-of-toString' into 'master'
allow ADL of `toString` in Property
See merge request !372
! 2017-07-26 - Charles Leggett, Marco Clemencic, charles leggett (commit fd03aaf7)
- Merge branch 'dev/PropertyDoc' into 'master'
make Property::documentation() return the actual documentation string
See merge request !363
! 2017-07-26 - Alessio Gianelle (commit bc7941fc)
- Merge branch 'coverity' into 'master'
Fixed coverity issues:
* KeyedObjectManager.cpp
* 64154: Iterator container mismatch
* 64281: Invalid iterator comparison
* ProcessDescriptor.cpp
* 64293: Out-of-bounds write
* AvalancheSchedulerSvc.cpp
* 94135: Dereference after null check
* 94134: Dereference after null check
* 94669: Unchecked dynamic_cast
* HiveTestAlgorithm.cpp
* 82289: Unchecked dynamic_cast
See merge request !357
! 2017-07-26 - Rosen Matev (commit 9752f2f2)
- Merge branch 'fix-DataObjectHandleBase' into 'master'
Do not modify DataObjectHandleBase python binding on add
See merge request !342
! 2017-07-26 - Charles Leggett, leggett (commit 42dba200)
- Merge branch 'dev/ICondSvc' into 'master'
added ICondSvc to GaudiKernel
See merge request !315
! 2017-07-20 - Gerhard Raven (commit bcdd986d)
- Merge branch 'augment_tupleobj' into 'master'
Augment TupleObj
See merge request !352
! 2017-07-18 - leggett (commit a9c96160)
- Merge branch 'dev/scott/gcc7warn' into 'master'
Fix a couple gcc7 compilation warnings
See merge request !339
! 2017-07-18 - Gerhard Raven (commit bafc770b)
- Merge branch 'refactor-tostream-array' into 'master'
Add toStream specialization for std::array into ToStream.h
See merge request !334
! 2017-07-10 - Graeme Stewart (commit 878c38fa)
- Merge branch 'issueseverity-fix2' into 'master'
IssueSeverity fix and add tests
See merge request !355
! 2017-07-03 - Marco Clemencic (commit 13902574)
- Merge branch 'master' into 'master'
Fixes to Gitlab-CI configuration
See merge request !350
! 2017-07-03 - Olli Lupton (commit 3d435670)
- Merge branch 'patch-1' into 'master'
Implement DataObjectHandleBase comparison with None.
See merge request !358
! 2017-06-12 - charles leggett, leggett (commit 887b198e)
- Merge branch 'dev/EventContextExt' into 'master'
extend EventContext via std::any
See merge request !345
! 2017-06-02 - Paul Seyfert (commit acb3ca5e)
- Merge branch 'pseyfert_IWYU' into 'master'
make exported headers self contained
See merge request !348
! 2017-06-02 - Marco Clemencic (commit fa5a92b3)
- Merge branch 'remove-smartranges' into 'master'
Remove GaudiKernel/SmartRanges.h
See merge request !351
! 2017-05-30 - scott snyder (commit 418b25f5)
- Merge branch 'clang-warn-20170525' into 'master'
Fix some clang compilation warnings: unused variables, parameters, typedefs.
See merge request !344
! 2017-05-24 - leggett (commit 5e3ddb9b)
- Merge branch 'dev/scott/msgstr' into 'master'
Fix uninitialized MsgStream member
See merge request !341
! 2017-05-22 - Marco Clemencic (commit c0bbff91)
- Merge branch 'fix-for-clang' into 'master'
Fixed error introduced with !332
See merge request !336
! 2017-05-19 - Gerhard Raven (commit 4281114a)
- Merge branch 'allow_adl_in_time' into 'master'
enable ADL lookup for binary Time,Time and TimeSpan,TimeSpan operators
See merge request !290
! 2017-05-19 - Gerhard Raven (commit c8d3b362)
- Merge branch 'modernize-conversionsvc' into 'master'
Modernize ConversionSvc
See merge request !327
! 2017-05-18 - Marco Clemencic (commit f6f3b30a)
- Merge branch 'fix-property-template-args' into 'master'
Modified some Property template args to fix tests with ROOT master
See merge request !332
! 2017-05-18 - charles leggett (commit 8e4e81d1)
- Merge branch 'dev/reEntFilt' into 'master'
make Algorithm::setFilterPassed const
See merge request !331
! 2017-05-05 - Charles Leggett, leggett (commit db47610f)
- Merge branch 'dev/Clonable' into 'master'
Algorithm clonability should be explicitly set by Alg author
See merge request !316
! 2017-04-26 - Charles Leggett (commit 752218d2)
- Merge branch 'dev/dev/CircDataDeps' into 'master'
filter circular data dependencies
See merge request !314
! 2017-04-20 - Charles Leggett, leggett (commit 0d7cf453)
- Merge branch 'dev/isSeq' into 'master'
Add flag to Algorithm to identify a Sequence
See merge request !317
! 2017-04-10 - Omar Awile (commit 63ccffed)
- Merge branch 'icc-fixes' into 'master'
Fixes to build Gaudi with the Intel compiler
Closes GAUDI-1297 and GAUDI-1298
See merge request !318
================================ Gaudi v28r2 =================================
! 2017-03-20 - Gerhard Raven, Marco Clemencic (commit 04cfad9)
- Merge branch 'fix-clang-compilation' into 'master'
fixed compilation with Clang
See merge request !294
! 2017-03-10 - Charles Leggett (commit 865caee)
- Merge branch 'dev/condHandle' into 'master'
DataHandle: add flag to identify Conditions
See merge request !293
! 2017-03-10 - Illya Shapoval (commit 51aa3b1)
- Merge branch 'schedulers-cleanup' into 'master'
Add AvalancheSchedulerSvc and clean up the ForwardSchedulerSvc
See merge request !288
! 2017-03-10 - Charles Leggett (commit 6d9a472)
- Merge branch 'dev/AutoDataLoad' into 'master'
Attribute unmet INPUT dependencies to a DataLoader Algorithm
See merge request !269
! 2017-03-10 - Gerhard Raven (commit f3d7bff)
- remove all references to endreq
See merge request !79
! 2017-03-09 - Gerhard Raven (commit 691af74)
- Make the Handler configuration of Property policy driven
Closes GAUDI-1276
See merge request !267
! 2017-03-09 - Marco Clemencic (commit 6d7927b)
- Merge branch 'fix-cmake-config' into 'master'
fixes to CMake modules
Closes LBCORE-1304
See merge request !298
! 2017-03-08 - Sebastien Ponce (commit 4228bfb)
- Made StatEntity more thread safe
See merge request !275
! 2017-03-07 - Gerhard Raven (commit c250ab5)
- Merge branch 'do-not-require-property-valuetype-default-constructible' into
'master'
do not require Gaudi::Property::ValueType to be default constructible
See merge request !271
! 2017-03-01 - Gerhard Raven (commit a32b381)
- Merge branch 'use-showpoint-in-genconf' into 'master'
use std::showpoint instead of std::fixed to print numbers
See merge request !254
! 2017-02-23 - Charles Leggett (commit 215f2b1)
- added ConcurrencyFlags class
The static ConcurrencyFlags allows easy access to information about the
number of threads, concurrent events, and processes.
For running in serial, numThreads == 0, numConcEvents == 0, numProcs == 0,
useful to distinguish between running serial, and running MT with 1 thread,
or MP with 1 process.
See merge request !277
! 2017-02-13 - Marco Clemencic (commit 099cad6)
- consistent repr for Python Configurables
fixes GAUDI-1290
See merge request !285
! 2017-02-08 - Charles Leggett (commit 09859bd)
- add sysExecute(EventContext) and extract errorCount from Algorithm base class
We need to extract the `m_errorCount` variable from the Algorithm base class,
as it's not important on a per-instance basis, but rather on a job level.
This is moved to the AlgExecStateSvc.
This merge request also adds an explicit `IAlgorithm::sysExecute(const
EventContext&)`, which should become the standard entry point to
`Algorithm::execute`. This sets the local m_event_context variable, so
derived classes can get quick access to the current context instead of going
through the slower thead local `Gaudi::Hive::currentContext()`.
Note that `IAlgorithm::sysExecute()` has been removed, to avoid "overloaded
virtual" compiler errors, and should be replaced in all clients with
`IAlgorithm::sysExecute(EventContext)`, or if the context is not immediately
available, with `IAlgorithm::sysExecute(Gaudi::Hive::currentContext())`.
All this is being done in preparation to re-introduce the ReEntrantAlgorithm
class from merge !177 (see also !274)
See merge request !273
! 2017-02-08 - Marco Clemencic (commit 817be0f)
- misc CMake fixes
- fixes GAUDI-1279
- fixes GAUDI-1288
See merge request !282
! 2017-01-19 - Charles Leggett (commit 453ab80)
- Fix DataHandleHolderVisitor
See merge request !268
! 2017-01-11 - Chris Jones (commit 8daf40a)
- Data object handle demangle name in error
Small improvement to `DataObjectHandle` to use System::typeinfoName to
extract the type when issuing a mis-match error message. Results in the type
being de-mangled from something like
``` ERROR The type provided for /Event/Rec/Track/BestRichDown is
14AnyDataWrapperIN5Gaudi6Range_ISt6vectorIPKN4LHCb5TrackESaIS6_EEN9__gnu_cxx17__normal_iteratorIPKS6_S8_EEEEE
and is different form the one of the object in the store.
```
to
``` ERROR The type provided for /Event/Rec/Track/BestRichDown is
AnyDataWrapper<Gaudi::Range_<std::vector<LHCb::Track
const*,std::allocator<LHCb::Track const*>
>,__gnu_cxx::__normal_iterator<LHCb::Track const*
const*,std::vector<LHCb::Track const*,std::allocator<LHCb::Track const*> > >
> > and is different from the one of the object in the store.
```
Chris
See merge request !272
================================ Gaudi v28r1 =================================
! 2016-12-14 - Attila Krasznahorkay (commit a42ff2a)
- CMake configuration changes to build Gaudi with optional externals missing
In the last days I experimented a bit with teaching Gaudi how to build when
only ROOT, Boost and TBB are available to it. This is the result. As far as I
can tell the code builds in the same way as the current master branch when
all possible externals are available. (All the ones available in a full ATLAS
offline build at least.) And I'm also able to build the project in these
modes:
* On Ubuntu 16.04 with the system provided Boost and TBB versions, against
a privately built ROOT 6 version.
* On macOS Sierra against privately built Boost, ROOT and TBB versions.
Both when building the project completely on its own, and when building it
against an ATLAS externals project.
Some notes:
* The code uses C++14 expressions in quite a few places by now. So I raised
the default C++ standard to C++14. This is the default in ATLAS builds since
a while, I only saw this as an issue when building Gaudi "on its own" with a
very minimal configuration command.
* While the code advertises that it still has support for ROOT 5, it's not
able to build against it since a wile. Since the updates I put in for TLS
variables on macOS. (The macros used there are ROOT 6 only.) And this update
makes things even worse. As the code now relies on not providing the
definition of some classes to the dictionary generator in GaudiPython that
are not available. (Because AIDA or XercesC is missing.) While ROOT 6 handles
this with just a build warning, ROOT 5's genreflex treats this with an ERROR
message. That I was unable to get rid of.
So, extended testing is clearly necessary, the configuration code could
definitely be fine tuned as I probably turned off the build of more source
files than absolutely necessary, but I think we should move ahead with such a
configuration organisation.
See merge request !241
! 2016-12-14 - Sebastien Ponce (commit efc88ab)
- Context fixes
See merge request !248
! 2016-12-07 - Gerhard Raven (commit 291ba41)
- Allow ADL lookup of parse and toStream
Currently, if one introduces a `Gaudi::Property<T>`, then there must be a
corresponding `StatusCode Gaudi::Parsers::parse(T&,const std::string&)` in
the namespace `Gaudi::Parsers` and a corresponding `void
Gaudi::Utils::toStream(const T&, std::stream&)` in the namespace
`Gaudi::Utils`.
This patch explicitly enables
[ADL](http://en.cppreference.com/w/cpp/language/adl) lookup (with a fall-back
to `Gaudi::Parser::parse` and `Gaudi::Utils::toStream`) so that it is
sufficient to either define `parse` and `toStream` in the namespace in which
`T` is defined, or add them as `friend` functions to `T`.
See merge request !242
! 2016-12-07 - many contributors (commit dc1b505)
- port LHCb MT developments to Gaudi master
among others we have
- `Gaudi::Functional`: base classes to write algorithms as pure functions
- `AnyDataWrapper`/`AnyDataHandle`: helper to store any type in the Transient
Store (DataSvc)
- fixes to `DataObjectHandle`
- fixes to `GaudiHive`
- new tests and examples
- modernization (removed empty destructors, ...)
See merge request !245
! 2016-11-25 - Charles Leggett (commit b3d9e7e)
- avoid infinite recursion when de-reffing ServiceHandle
See merge request !235
! 2016-11-10 - Chris Jones (commit bad2bf3)
- Add accessor to ServiceHandle to allow non const access to service, even from
a const handle
See the discussion in gaudi/Gaudi!225
I am not completely sure what I think of this. I am not completely sold on
the idea, but can see Services are different beasts to tools.
I submit this for discussion and testing by Atlas( @leggett I've tested it
in as far as Gaudi compiles but as in LHCb we have no use case that requires
it, cannot go much future. It would be good if this MR could be tested
against Atlas *before* merging this time ;))
See merge request !233
================================ Gaudi v28r0 =================================
! 2016-11-08 - Marco Clemencic (commit ec96c27)
- cleaning up last minute glitches
- fixed warnings from clang
- fixed issues with ROOT 6.08
- minor polishing
- minor fixes to tests
- fixed GAUDI-1221
See merge request !230
! 2016-11-04 - Charles Leggett (commit 0eb189a)
- Use invalid defaults for EvenID parameter inits
Since zero can be a valid number for various EventID related parameters,
e.g. run# or event#, we need invalid defaults to be able to distinguish
between EventIDs that are set with lumiblock info, vs run# info
See merge request !199
! 2016-11-04 - Frank Winklmeier (commit f4ae6f7)
- Performance improvements for System::getProcessTime (now ~30% faster)
- Increase test coverage and add performance check to test_GaudiTiming
- Remove unnecessary calls to getpid (saves ~10ns per query() call):
- Remove getpid calls in case pid is -1 (self)
- Remove ugly define that was hiding the getpid() calls in the
source code
- Switch from getrusage() to times() (saves ~100ns per call)
- Only create ProcessHandle for Windows
- Add templated version of currentTime() so it can be inlined
- Allow System::getProcess to be inlined (move Windows code to
constructor)
- Remove private caches for query() calls as those were not used
See merge request !228
! 2016-11-02 - Charles Leggett (commit 92567c2)
- make IHiveWhiteBoard::getNumberOfStores() const
See merge request !229
! 2016-11-02 - Chris Jones (commit 6d4d438)
- Add support for Handle const assignment from non const instances
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 gaudi/Gaudi!215
See merge request !226
! 2016-11-02 - Chris Jones (commit 61952b5)
- More efficient Toolhandle<T>::get() method
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
! 2016-10-29 - Marco Clemencic (commit 5c4b4e0)
- fixed missing header
fix compilation after gaudi/Gaudi!223
! 2016-10-28 - Roel Aaij (commit dd70115)
- Fix tool data handle propagation
Data handles of tools were not "propagated" to their parent algorithm or
tool. Similarly for sub-algorithms.
See merge request !223
! 2016-10-28 - Marco Clemencic (commit f2881a2)
- minor fixes for new Property
- removed deprecation warning in `Gaudi::Details::PropertyBase::clone`
- removed Property from GaudiPython dictionary
See merge request !224
! 2016-10-28 - Marco Clemencic (commit 7a372bb)
- fixed a few compilation warnings
See merge request !221
! 2016-10-28 - Charles Leggett (commit b260914)
- Check msgSvc() is not null
This fixes a crash in athenaHLT jobs
fixes ATR-15094
See merge request !222
! 2016-10-27 - Gerhard Raven, Marco Clemencic (commit b111898)
- modernization of Property
This is a major rewrite of the system of `Property` classes. Started as the
implementation of GAUDI-1214, it continued as a review of
`IProperty` and `PropertyMgr`, to end up in a complete rewrite
(and optimization) of `PropertyWithValue`.
* Fixes GAUDI-1214
- added missing `declareProperty` signature
- added `PropertyHolder` (an updated `PropertyMgr`)
- adapted all properties in Gaudi
* improved use of `PropertyHolder`
- use inheritance instead of composition
- removed ~200 (duplicated) lines of code in GaudiKernel
* optimization of Property (fixes GAUDI-1229)
- use templates and automatic code generation to handle efficiently
both value and reference properties
- avoid creation of values on the heap (see GAUDI-1229)
- removed the *owned* boolean flag
- improved usability of properties (e.g. begin/end wrappers for
C++11 loops, increment/decrement operators...)
- deprecated use of C arrays as properties
- merged features of `PropertyWithVerifier`, `SimpleProperty` and
`SimplePropertyRef` into `PropertyWithValue`
- deduplication of name and doc strings via
[`boost::string_ref`](http://www.boost.org/doc/libs/1_61_0/libs/utility/doc/html/string_ref.html)
and a static storage (see GAUDI-1229)
* Fixes GAUDI-1205
* add deprecation warnings in service accessors of `Algorithm` (@graven)
* renamed `Property` base class to `Gaudi::Details::PropertyBase` and
`PropertyWithValue` to `Gaudi::Property`
- added backward compatibility type aliases (but not compatible with
forward declarations of `class Property`, which should be replaced
by `#include "GaudiKernel/PropertyFwd.h"`)
* added macro `GAUDI_PROPERTY_v2` to allow easy implementation of
backward compatible changes in derived projects (e.g. when user code
relied on `DoubleProperty` having a verifier)
* Fixes GAUDI-1268
The changes are as backward compatible as much as possible (except if you
explicitly inherit from `SimpleProperty`, or you forward declared
`class Property`, which now are typedefs), but must be validated in the
experiment frameworks.
See merge request !182
! 2016-10-26 - Benedikt Hegner (commit 668ce4b)
- Remove deprecated schedulers
- remove deprecated RoundRobin, ParallelSequential and Sequential schedulers
(see GAUDI-1263)
- remove deprecated copy of state machine interface from IAlgManager.
This removal has been checked grep'ing the git repo of ATLAS
See merge request !202
! 2016-10-25 - Chris Jones (commit be54ccc)
- Update GaudiHandle to return const Tool access from const Handle
via `->` and `*` operators and `get()` method
Also removed unused `ThreadPoolSvc::getThreadInitTools()`.
See merge request !217
! 2016-10-24 - Attila Krasznahorkay (commit ac4dbc7)
- Changes to build on MacOS X 10.11
See merge request !200
! 2016-10-24 - Marco Clemencic (commit a8d6605)
- hidden/fixed "missing override" warnings exposed after !192
- warnings from external headers are hidden declaring the include directories
as `-system`
- warnings from a couple of new files have been fixed
- warnings in `HistogramSvc` are hidden because unavoidable (see f83c3d8e)
- warnings related to CLHEP-136 have been hidden with a special trick (see
0a238135)
See merge request !205
! 2016-10-24 - Chris Jones (commit c0e5c4f)
- Add support to ToolHandle for const tool interfaces
Allow use const tool interfaces as in
```.cpp ToolHandle<const IMyTool> m_myTool{"MyTool", this};
```
See merge request !215
! 2016-10-24 - Gerhard Raven (commit 8db3eb0)
- remove redundant destructors
do not specify (virtual) default destructor in derived classes when the base
class already explicitly defines one
See merge request !214
! 2016-10-19 - Charles Leggett (commit 958570b)
- Algorithm Execution State Service
Introduction of AlgExecStateSvc
All event state information removed from Algorithm base class
(m_filterPassed, m_isExecuted) as it will cause difficulties with re-entrant
Algorithms.
event success/fail flag removed from EventContext
These flags are moved to be under control of a new service, the
AlgExecStateSvc, which keeps track of the execution state of all Algorithms,
and the Event as a whole.
Algorithm status kept in a new class ```AlgExecState``` which has
```
bool m_filterPassed {true};
bool m_isExecuted {false};
StatusCode m_execStatus {StatusCode::FAILURE};
```
AlgExecStateSvc holds an AlgExecState for each Algorithm in each Event
Slot, as well as an overall ```EventStatus``` for each EventSlot, which can
be one of
```
Invalid = 0,
Success = 1,
AlgFail = 2,
AlgStall = 3,
Other = 4
```
Algorithms add themselves to the AlgExecStateSvc upon initialization, but
the Service's initialization of the data structures is deferred until the
first time ```AlgExecStateSvc::reset()``` is called, at which point it's
probably safe to figure out if there's a WhiteBoard, and the number of slots
to allocate.
The EventLoopMgr should call ```AlgExecStateSvc::reset()``` at the start of
each event. If it's a concurrent EventLoopMgr, it should be
```AlgExecStateSvc::reset(EventContext)```, after the EventContext object
has been updated to reflect the new event.
Also added an EventContext object to the MinimalEventLoopMgr, so that
serial/concurrent behaviour is similar.
Concurrent queries to the AlgExecStateSvc must contain the EventContext, so
the correct EventSlot can be determined. Serial access is via methods that
don't have the EventContext as a parameter. For access from Algorithm base
class (eg from setFilterPassed, isExecuted, etc), if the EventContext ptr
(m_event_context) in the Algorithm is null, we assume we're running
serially.
See merge request !197
! 2016-10-19 - Marco Clemencic (commit e2c1f4a)
- fixes and improvements for ROOT 6.08 and gcc 6.1
* added option to use or not GCC old C++11 ABI (off by default)
* added some missing #include for the usual headers clean up in gcc
* fixed a few places where old GCC behaviour was assumed
* fixed default C++ standard version for clang >= 3.7
* fixed GAUDI-1242
See merge request !187
! 2016-10-12 - Chris Jones (commit 5e8fd1c)
- Default initialise the key value in KeyedObject.
See merge request !196
! 2016-10-12 - Charles Leggett, Marco Clemencic (commit 5b17b33)
- Add LockedHandle class, that locks/unlocks access around ptr
usage:
```c++ std::mutex the_mutex; Obj *o = new Obj(); LockedHandle<Obj> lh(o,
&the_mutex); o->doSomething();
```
access to `o->doSomething()` will be protected by a mutex.
uses a `std::mutex` by default, but this can be overridden via a second
template arg:
```c++ LockedHandle<Obj_TYPE, Mutex_TYPE> lh(obj, &mut);
```
CPPUnit test is also provided
modified: GaudiKernel/CMakeLists.txt
new file: GaudiKernel/GaudiKernel/LockedHandle.h
new file: GaudiKernel/tests/src/test_LockedHandle.cpp
See merge request !195
! 2016-10-12 - Marco Clemencic (commit b5e05a1)
- improved handling of package version in CMake configuration
use project version if a package version is not provided
See GAUDI-1215.
See merge request !175
! 2016-10-03 - Illya Shapoval (commit 95cdba1)
- A prototype of a scheduler for efficient handling of heterogeneous tasks
The prototype is described in detail in
[chapter 4](https://cds.cern.ch/record/2149420).
See merge request !178
! 2016-10-01 - Marco Clemencic (commit 99b1001)
- enable missing override warnings (gcc >= 5.1)
Fixes GAUDI-1241
See merge request !192
! 2016-10-01 - Chris Jones (commit 73dc799)
- Add missing utility include, needed for std::forward
See merge request !193
! 2016-08-19 - Marco Clemencic (commit f3050c3)
- Fix compile time warnings
fixed/hidden all warnings in GCC builds
See merge request !189
! 2016-07-25 - Marco Clemencic (commit e3d4b07)
- remove CMT configuration and related files
* removed CMT configuration files
* adapted scripts not to use CMT
Fixes GAUDI-1216 Fixes GAUDI-979
See merge request !186
! 2016-06-27 - Marco Clemencic (commit 17f2380)
- added deprecation warnings to endreq and messageService()
This is meant to help the merge of !79 and !80.
Fixes GAUDI-1225
See merge request !183
! 2016-06-23 - Sami Kama (commit 3735737)
- Adding concurrent incident support and example utilization.
`GaudiExamples/options/AsyncIncidents.py` demonstrates example utilization of
asynchronous incident mechanism.
Fixes GAUDI-1213
See merge request !181
! 2016-06-13 - Charles Leggett (commit 5d76113)
- ignore data dependencies for empty keys
if a DataHandle has a blank key (which in any case is not allowed in the
event store), ignore it when assembling the data dependencies of the
Algorithm or AlgTool
See merge request !169 and atlas/Gaudi!25
! 2016-06-10 - Marco Clemencic (commit 79fe8bc)
- Remove references to GCCXML
Fixes GAUDI-1202
See merge request !148
! 2016-05-31 - Charles Leggett (commit 5a1481e)
- intersection fcn for EventIDRange
added a static function to EventIDRange which takes a variable number of
EventIDRange arguments, and returns the intersection of them, but getting
the maximum of the
`start()` and minimum of the `stop()`.
See merge request see atlas/Gaudi!22, !167
! 2016-05-31 - Charles Leggett (commit b29534a)
- fix ToolHandle initialization in AlgTools and Algorithms
(from Attila) The current implementation in these functions instantiates
duplicate tools when we declare a public ToolHandleArray as a property to an
algorithm or a tool. This modification fixes the duplication in the ATN
tests that the error originally showed up in.
See merge request !158
! 2016-05-31 - Marco Clemencic (commit 32fdc55)
- restore fix to GAUDI-1018 removed by a875c69e
See merge request !172
! 2016-05-18 - Sami Kama (commit 9eeef96)
- allow build of Gaudi without LCG and fix ThreadPoolSvc
Allow building of Gaudi with local externals.
It also contains a fix to an issue introduced with merge request !160
(GAUDI-1212).
Fixes GAUDI-1211, GAUDI-1212.
See merge request !166
! 2016-04-22 - Charles Leggett (commit 2a16f73)
- GaudiHandle: add missing override keyword
Fixes compilation warning in METReconstruction in the cmake build.
See merge request !161
! 2016-04-19 - Steve Farrell (commit ff70ca3)
- Thread tool termination
This set of changes completes the work started by @leggett in
a875c69e3ac6b1d1253e4086daea076860a95e52 on thread initialization tools. Such
tools are invoked by the ThreadPoolSvc on each worker thread when the pool is
initialized and can be used to setup thread-local workspaces in cases where
necessary (e.g. for running multi-threaded Geant4).
These commits enable the thread-termination part of those tools for
corresponding cleanup/finalization of thread-local memory. This is done
primarily by adding a terminatePool method to IThreadPoolSvc which is called
at the end of ForwardSchedulerSvc::activate. The ThreadPoolSvc underwent some
slight refactoring to support the thread-termination tasks.
Also included in this merge request are a number of whitespace and
indentation fixes, as well as some added class documentation in the affected
classes.
See merge request !142
! 2016-04-14 - Charles Leggett (commit 6117bd2)
- EventContext: remove incomplete and useless operator=
(from Scott Snyder)
EventContext::operator= was not copying m_eid and m_proxy. since it does
the same thing as the default, better just to delete it.
See merge request !151
! 2016-04-14 - Charles Leggett (commit bdaade3)
- updates for EventIDBase
- add some methods to test payload of EventIDBase
- use std::tie for comparisons
See merge request !153
! 2016-04-12 - Attila Krasznahorkay (commit d7c1896)
- fix CommonMessaging::outputLevel()
See merge request !154
! 2016-04-09 - Charles Leggett (commit 84020b9)
- Isolate EventContext from Algorithm
in order to not have re-entrant Algorithms stomp on each others'
EventContexts, we need to isolate the EventContext from the Algorithm, and
move it to the AlgoExecutionTask. We can then pass the EventContext
explicitly to the tbb::task, instead of carrying it via the Algorithm, which
would fail for re-entrant Algs. This also requires a change to the signature
of ForwardSchedulerSvc::promoteToExecuted.
We should also make the EventContext* of the Algorithm const, to prevent any
modification from inside the Alg.
See merge request !147
! 2016-03-22 - Charles Leggett (commit d7ecf7e)
- add GaudiKernel/EventIDRange class
Adds an EventIDRange class to GaudiKernel, which holds 2 EventIDBase objects
add sort methods to EventIDBase, to sort by Run/Event, Timestamp, and
Lumi/Event
See merge request !130
============================= GaudiKernel v33r1 ==============================
! 2016-03-10 - commit f84ad02
- Register Tools declared in ToolHandleArray in parent Algorithm/AlgTool
data deps of Tools in ToolHandleArrays are not pushed to parent Alg/AlgTool
need to add a declareProperty(... ToolHandleArray<T> ...) to Algorithm and
AlgTool, and add all ToolHandleArrays thus declared to a container that gets
processed during initToolHandles. In order to avoid adding tools from Arrays
that haven't been retrieved, we have to add a bool flag to the
GaudiHandleArrayBase to detect if it's been retrieved. there's a bit of
ugliness in extracting a ptr to an IAlgTool from the untemplated
GaudiHandleArrayBase, as we have to explicitly retrieve the tool from the
ToolSvc by name, but since it's already been retrieved when the Array gets
retrieved, we won't be doing any new creations.
I believe that the testing for whether the retrieved tool is public or
private is redundant, as I don't think you can put a Public tool into a
Private ToolHandleArray (at least you can't seem to do so in ATLAS), but I
left it in just in case.
See GAUDI-1190
See merge request !124
! 2016-03-10 - commit 02f2560
- use StringKey for Alg name, add IAlgorithm::setIndex
this patch does 3 things:
- makes Algorithm::index() const (as it should have been), set the initial
value to 0 instead of 123 (!)
- adds a protected Algorithm::setIndex(unsigned int) method. this allows you
to distinguish between clones. AlgResourcePool is the one who does the
setting, and is declared as a friend to IAlgorithm
- turns Algorithm::m_name into a StringKey (from a string), so we can hash on
the name of Algorithms more easily (a useful ability when dealing with Alg
clones, and trying to treat them all the same way)
See merge request !125
! 2016-03-10 - commit 2de9290
- added metadata service
The metadata service adds information about n-tuple production into the
resulting n-tuple.
Update and overrides !128
See merge request !136
! 2016-03-10 - commit 4a18175
- removed uses of templates implements[1-4], extends[1-4] and
extend_interfaces[1-4]
Since merge request !22 they are unnecessary.
See merge request !133
! 2016-03-10 - commit 8a11f51
- fixed unprotected debug messages
I also added the possibility of dumping a stack trace for unprotected
messages.
Fixes GAUDI-1192
See merge request !129
! 2016-03-09 - commit 8685ac9
- various fixes and (minor) improvements to documentation
See merge request !127
! 2016-03-03 - commit 5925940
- restored DeclareFactoryEntry macros for ATLAS
restored the (dummy) DeclareFactoryEntry macros for ATLAS compatibility.
these are protected with a `#ifdef ATLAS` macro
also fixed GaudiHive/CPUCruncher to remove this usage
See merge request !126
! 2016-03-02 - commit a146191
- separate thread local EventContext handling from ContextSpecificPtr
Moved all the setting/getting methods for the thread local
`EventContext` from `GaudiKernel/ContextSpecificPtr.h` to a new file
`GaudiKernel/ThreadLocalContext.h`.
See merge request !122
! 2016-02-29 - commit 223ce08
- Merge branch 'GAUDI-1183' into 'master'
reorganize DataHandleHolder visitor acces to avoid non-retrieved tools
This is not a perfect fix, more a workaround.
The method `initToolHandles` have been modified to fill the list of used
`ToolHandle`s only with the tools retrieved explicitly in the `initialize`
method.
`GaudiCommon` required the introduction of a hook so that the custom _fixer_
visitor could be created in the `GaudiCommon::initialize`, but used only at
the end of `PBASE::sysInitialize` (eb39274).
I also fixed an issue (double delete) with the use of `ToolHandle` from
`GaudiCommon` (0a1bec8).
Fixes GAUDI-1183.
See merge request !120
! 2016-02-22 - commit acafe77
- correctly initialize CommonMessaging::m_level
Fixes GAUDI-1185
See merge request !118
! 2016-02-17 - commit 7b13bd5
- removed static_assert in ToolHandle.h
Fixes GAUDI-1182
See merge request !116
! 2016-02-17 - commit 3aa8fa9
- Fixes for compatibility with ATLAS code
* protect PATH from local directories
* restore `outputLevel()` method removed with mr !76 (b0618f78)
Fixes GAUDI-1181
See merge request !115
! 2016-02-15 - commit 4dc9082
- fixed handling of (multi line) strings and ';' in strings for .opts files
Fixes GAUDI-1179
See merge request !112
! 2016-02-11 - commit b0618f7
- Improve CommonMessaging
Implementation of GAUDI-1146: Improve CommonMessaging and use it in more
places.
See merge request !76
Conflicts:
GaudiExamples/tests/qmtest/refs/AlgTools2.ref
GaudiExamples/tests/qmtest/refs/MultiInput/Read.ref
GaudiExamples/tests/qmtest/refs/conditional_output/write.ref
GaudiKernel/GaudiKernel/AlgTool.h
GaudiKernel/GaudiKernel/Algorithm.h
GaudiKernel/GaudiKernel/Service.h
GaudiKernel/src/Lib/AlgTool.cpp
GaudiKernel/src/Lib/Algorithm.cpp
! 2016-02-11 - commit dabf7a3
- Restore fixed ToolHandle.h
The version of ToolHandle.h before fa29ed33 included some improvements,
as
well as the fixes for https://sft.its.cern.ch/jira/browse/CFHEP-177 and
GAUDI-1127.
The version introduced with fa29ed33 does not work because of GAUDI-1127.
See merge request !106
! 2016-02-09 - commit 11d42e4
- DataHandles fixes for LHCb
- renamed IDataHandleHolder::accept to acceptDHVisitor to avoid build time
warnings in LHCb
- fixed reference file for GaudiExamples.thistwrite
See merge request !104
! 2016-02-09 - commit a4bea2b
- remove unprotected DEBUG messages added in v27r0
The merge of the 'hive' branch introduced several _unprotected_ DEBUG
messages,
which is against LHCb policies.
Fixes GAUDI-1174.
See merge request !102
! 2016-02-09 - commit dfa9d35
- expanded EventContext and EventIDBase
the EventContext class needs to be expanded in two ways
- bring in event identifying information (event#, run#, timestamp,
lumi#, etc)
- some experiment dependent ptr for other stuff
See merge request !103
! 2016-02-06 - commit d905569
- introduce DataHandle and DataObjectHandle
See merge requests !57 !94 !95
============================= GaudiKernel v33r0 ==============================
! 2016-01-21 - commit 1e44d49
- made DataObjectDescriptor.__eq__ more robust
Fixes GAUDI-1155.
See merge request !99
! 2016-01-21 - commit f637ca4
- ensure that destination vector for DataSvc::objectLeaves gets reset
The change restore the implementation in 'master' before the merge of 'hive'.
Fixes GAUDI-1166.
See merge request !97
! 2016-01-12 - commit f5ed7cd
- Add missing header to GaudiKernel/DataSvc.h
Some packages in the ATLAS offline code started failing because of this
missing include. Since the SmartIF<IConversionSvc> member variable does
need
a full declaration of this type.
Fixes GAUDI-1163.
See merge request !90
! 2016-01-12 - commit 8ec1b7b
- return the just-added tool from addTool
augment addTool to return the tool it just added.
This allows one to write:
```python
myToolWithName = myalg.addTool(tool_conf2,"ToolWithName")
myToolWithName.String = "xyz"
```
instead of
```python
myalg.addTool(tool_conf2,"ToolWithName")
myalg.ToolWithName.String = "xyz"
```
which requires one to duplicate the "ToolWithName" -- once as string,
and
once as attribute, but only rarely does anybody use getattr for the 2nd
case to just avoid the duplication.
Of course, one could write
```python
myalg.addTool(tool_conf2,"ToolWithName", String="xyz")
```
or even pass in a complete dictionary with **, but the configuration of
the tool isn't necessarily complete at the time of creation of its
configurable.
Fixes GAUDI-1162.
See merge request !87
! 2016-01-11 - commit ce14297
- change return type of Property::declare{Read,Update}Handler from void to
Property&,
The reason is that this way one can write code like this:
```C++
declareProperty("trackMaxChi2", m_trackMaxChi2 = 25.)
->declareUpdateHandler( [this](Property&){ this->m_trackChi =
std::sqrt(this->m_trackMaxChi2); } )
.useUpdateHandler();
```
this keeps m_trackChi in sync with m_trackMaxChi2. Without the call
to
useUpdateHandler, if there is no entry in the JobOptionsSvc,
m_trackChi
would not be set, and one would have to duplicate the
code to 'derive'
m_trackChi from m_trackMaxChi2 just to initialize
it to the proper default.
Fixes GAUDI-1160.
See merge request !85
! 2016-01-11 - commit cd47f7e
- add support for std::array in SerializeSTL
Fixes GAUDI-1159.
See merge request !86
! 2016-01-08 - commit 85c99bc
- Speed up Configurable.isPropertySet
Fixes GAUDI-1158.
See merge request !88
! 2016-01-07 - commit fabc739
- fixed compilation with clang 3.7 (after hive merge)
* fixed compilation problems related to `operator<<` (gcc is more
permissive than clang).
* fixed also some clang warnings.
Fixes GAUDI-1157.
See merge request !84
! 2016-01-06 - commit 19beffc
- add constructor from std::initializer_list to GaudiUtils::VectorMap
add support to construct a GaudiUtils::VectorMap from an
std::initializer_list
Fixes GAUDI-1154.
See merge request !82
! 2015-12-04 - commit 1652f3b
- fixed logic of Gaudi::popCurrentDataObject()
fixes GAUDI-1068
See merge request !71
! 2015-11-11 - commit 0a0032f
- Merge branch 'GAUDI-1130' into 'master'
fixes to support native build on Ubuntu 15.10
Fixes GAUDI-1130.
See merge request !70
! 2015-11-11 - commit 0feb8ab
- Merge branch 'GAUDI-1127' into 'master'
removed the need for ToolHandle<IAlgTool> specialization
Modified the implementation of BaseToolHandle so that the retrieve
method
can be implemented without conflicting with the retrieve method
of
ToolHandle<T> with T=IAlgTool.
This, BTW, fixes GAUDI-1127.
See CFHEP-177 and merge request !10.
See merge request !67
! 2015-11-10 - commit 3c3e9d9
- Merge branch 'GAUDI-1127' into 'master'
removed the need for ToolHandle<IAlgTool> specialization
Modified the implementation of BaseToolHandle so that the retrieve
method
can be implemented without conflicting with the retrieve method
of
ToolHandle<T> with T=IAlgTool.
This, BTW, fixes GAUDI-1127.
See CFHEP-177 and merge request !10.
See merge request !67
! 2015-11-10 - commit 44b1ef5
- update to DataObjID: switch order of parameters in constructor
Change the order of the parameters in the DataObjID constructor from
(Key,ClassID) to (ClassID,Key) in order to match more general usage in Atlas.
Update to GAUDI-1102.
See merge request !64
! 2015-11-10 - commit 148f1bc
- Merge branch 'GAUDI-1126' into 'master'
use external linkage for IncidentType constants
Fixes GAUDI-1126.
See merge request !69
! 2015-11-09 - commit c5f6d91
- Merge branch 'GAUDI-1128' into 'master'
change IInspector enum names to avoid conflicts with Oracle
Changed IInspector::MUTABLE and IInspector::CONST to IInspector::Mutable
and IInspector::Const.
Fixes GAUDI-1128.
See merge request !68
! 2015-11-09 - commit 2a28fda
- Merge branch 'GAUDI-1127' into 'master'
removed the need for ToolHandle<IAlgTool> specialization
Modified the implementation of BaseToolHandle so that the retrieve
method
can be implemented without conflicting with the retrieve method
of
ToolHandle<T> with T=IAlgTool.
This, BTW, fixes GAUDI-1127.
See CFHEP-177 and merge request !10.
See merge request !67
! 2015-11-09 - commit 0870b7f
- Merge branch 'GAUDI-1124' into 'master'
remove usage of "#pragma once"
Fixes GAUDI-1124.
See merge request !66
! 2015-11-02 - commit 57f356c
- Merge branch 'hive' into 'master'
Fixes GAUDI-978.
See merge request !65
! 2015-10-29 - commit aa624e1
- Allow compilation of Gaudi with clang 3.7 using gcc 4.9 externals
To do so, some arguments have to be passed to cmake, assuming CMTCONFIG is
x86_64-slc6-clang37-opt
* LCG_SYSTEM: To specify the flavour of the externals to use
* LCG_FORCE_COMPILER: To specify the compiler to use, with the
format "<compiler>-<version>" (an lcg wrapper has to exist for
this to work).
Using the LHCb Makefiles, you just need to specify:
``` export CMAKEFLAGS="-DLCG_SYSTEM=x86_64-slc6-gcc49
-DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DLCG_FORCE_COMPILER=clang-3.7"
```
Fixes GAUDI-1123 and LBCORE-934.
See merge request !48
! 2015-10-27 - commit 1031fb3
- Merge branch 'GAUDI-1121' into 'master'
use `double` parser for floats with Boost 1.59
* introduced a test to expose the problem
* use the parser for doubles to parse strings into floats when Boost > 1.55
Fixes GAUDI-1121.
See merge request !60
! 2015-10-26 - commit de80db5
- More modernization changes
Fix (almost) all warnings from clang 3.7, and use clang-modernize to further
modernize the code.
Fixes GAUDI-1118.
See merge request !49
! 2015-10-22 - commit ef41582
- Fix GAUDI-1108: bad ObjectVector and ObjectList copy constructor
mark copy constructor and assignment operator of ObjectList and ObjectVector
as = delete as both ObjectList and ObjectVector assume they own the pointers
they contain, and hence a plain copy or assignment will result in two object
which both assume they own these pointers.
See merge request !50
============================= GaudiKernel v32r0 ==============================
! 2015-10-08 - commit dfb4790
- minor fixes to some interface files
See merge request !44
! 2015-10-08 - commit c50c176
- improvements to documentation and release tools
See merge request !43
! 2015-10-08 - commit fa6ec2d
- fixed DataObject constructor and assignment operator
Fixes GAUDI-1076
* fixed copy constructor
* added assignment operator
* added move constructor and assignment
See merge request !42
! 2015-10-08 - commit 1abdd22
- Merge branch 'dev/DataObjID' into 'master'
update DataObjID
fixed typo in DataObjIDProperty, updated release notes, added DataHandle
placeholder prototype class
* DataObjID: various classes used for DataObject and DataHandle
identification
* DataObjID: holds a unique key for an object in the store, with an internal
representation as a hash for fast lookup.
syntax is either Gaudi EDS path style "/path/to/object", or
ATLAS
style with (ClassID,"key") or ("ClassName","key")
Collections of DataObjIDs are
unordered_set<DataObjID,DataObjID_Hasher>
typedef to DataObjIDColl
* DataObjIDProperty: jobOpt Property handler for DataObjID and DataObjIDColl
* DataHandle: prototype placeholder for DataHande class
See merge request !41
! 2015-10-06 - commit 8e30d3e
- Merge branch 'dev/DataObjID' into 'master'
added DataObjID
Fixes GAUDI-1102
this merge is needed to maintain functionality in both Hive and vanilla Gaudi
branches.
See merge request !36
! 2015-10-04 - commit 328c078
- Merge branch 'dev-variadic-interface-base' into 'master'
Take advantage of variadic templates to implement interface bookkeeping and
interface casting
This patch updates the implementation of the interface bookkeeping and
casting from the current macros + boost mpl code to use variadic templates.
See merge request !22
! 2015-09-29 - commit 10bf256
- fixed a compile time warning
warning: enumeral mismatch in conditional expression:
'StatusCode::<anonymous enum>' vs 'IConversionSvc::Status'
! 2015-09-25 - commit c1d7111
- Merge branch 'dev-stateful' into 'master'
make IStateful baseclass of IAlgTool, IAlgorithm and IService
IAlgTool, IAlgorithm and IService all declare the following pure virtual
functions:
configure,initialize,start,stop,finalize,terminate,reinitialize
restart and FSMState which, presumable not by coincidence, also happens
to be the functions which IStateful declares.
This commit removes those declarations from IAlgTool, IAlgorithm and
IService, and instead makes them inherit from IStateful
Fixes GAUDI-1092
See merge request !23
! 2015-09-25 - commit 35dd00c
- Merge branch 'dev-smartif-use' into 'master'
Provide (and use) C++11 smart pointer 'look and feel' for SmartIF
The aim of this branch is to confine, for everything that inherits from
IInterface, the calls to addRef(), release() and queryInterface() to the
SmartIF implementation. Exceptions are a few places where interfaces
(currently) return bare pointers (instead of SmartIF...) and where one thus
has to addRef() explicitly to avoid returning a dangling pointer. This can be
avoided by changing the relevant interface to return a SmartIF instead of a
bare pointer.
In addition, make SmartIF 'look and feel' like a smart pointer.
- use explict bool conversion instead of .isValid()
- add SmartIF::as<IFace>(), to return a SmartIF<IFace> to an alternate
interface -- which (together with move) encourages the use of auto
- add ISvcLocator::as<IFace>(), to return a SmartIF<IFace> to the current
ISvcLocator.
- add ServiceManager::service<IFace>() which return SmartIF<IFace> which
encourages
the use of auto
And add a few other C++11 modernizations (eg. prefer STL over raw loop)
Fixes GAUDI-1094
See merge request !24
! 2015-09-24 - commit 8e8ad96
- Merge branch 'componenthelp' into 'master'
extract gaudiComponentHelp from hive
gaudiComponentHelp is a tool to print a help message for a given component.
Fixes GAUDI-1091.
See merge request !17
! 2015-09-21 - commit a7d3a5a
- Merge branch 'AppMgrUI' into 'master'
Switch IAppMgrUI inheritance from Interface to INamedInterface and remove the
pure virtual name()
IAppMgrUI inherits from IInterface, and adds a pure virtual name() method
with the exact same signature as the one in INamedInterface.
As a result, the same effect can be obtained by inheritance from
INamedIterface instead of IInterface. The advantage is that if an
implementation (virtually) inherits not only from IAppMgrUI but also another
interface which (virtually) inherits from INamedInterface, there is no
ambiguity in the definition of name(). With the 'old' code, one has to
disambiguate between multiple name() members...
See merge request !18
! 2015-09-17 - commit d53e750
- Merge branch 'dev-common-messaging' into 'master'
Generalize CommonMessaging, and use it to implement the messaging
functionality ...
...in GaudiAlg/GaudiCommon
CommonMessaging needs two methods to be available to implement its
functionality:
const std::string& name() const
SmartIF<ServiceLocator>& serviceLocator() const
As CommonMessaging is a mix-in class which uses the 'curiously recurring
template'
pattern, it can either demand that the 'Base' class it is 'mixed' into
already
provided this functionality, or it can add pure virtual methods to insure
any
derived class does so. As this depends on the template argument, one cannot
a-priori decide which of the two solution is appropriate.
To solve this problem in a generic way, this patch uses SFINAE to detect
at compile time whether Base::name() and Base::serviceLocator() -- where
Base is the template argument provided to CommonMessaging -- are valid
expressions. If they are, no further action is taken. If not, the missing
function(s) is (are) added as pure virtual. This is done by specialization
of two template classes from which CommonMessaging inherits, prior to
inheriting from Base. Those specializations are either 'empty' classes,
or add the missing interface requirement.
See merge request !19
! 2015-09-16 - commit 1a1f906
- Merge branch 'fix-regression-atlas' into 'master'
Restore ModuleLoadedIncident::TYPE()
Removal of ModuleLoadedIncident::TYPE() did not take into account the Atlas
use of it, see GAUDI-1062.
See merge request !27
! 2015-09-11 - commit c062cbe
- C++11 modernization changes
Some trivial - and some not so trivial! - changes which take advantage of
C++11...
See merge request !7
============================= GaudiKernel v31r6 ==============================
! 2015-06-09 - Marco Clemencic
- GAUDI-1042: replaced "static const" with "constexpr" in physics constants.
============================= GaudiKernel v31r5 ==============================
! 2015-05-21 - Marco Clemencic
- Fixed compilation with CMT.
! 2015-05-01 - Charles Leggett
- compiler doesn't like nullptr. have to use std::nullptr_t
! 2015-04-29 - Charles Leggett
- mark ToolHandle(nullptr) constructor as deleted to avoid abuse
! 2015-05-14 - Marco Clemencic
- Fixed a build warning in test_PropertyMgr.
! 2015-05-05 - Marco Clemencic
- Fixed GAUDI-1030: remove Algorithm property "ErrorCount"
Renamed the property to "ErrorCounter".
Added accessor Algorithm::errorCount().
! 2015-04-23 - Rosen Matev
- Fixed GAUDI-1028: typo in ConfigurableUser
! 2015-04-21 - Marco Clemencic
- GAUDI-1023: ensure that the warning is printed by genconf
Also fixed the retrieval of the PropertyMgr owner name (if it was set).
! 2015-04-20 - Marco Clemencic
- GAUDI-1023: issue a warning when re-declaring a property
The anti-pattern is used a bit too often to just fail: we need some time to
fix the code before before enforcing the correct behavior.
! 2015-04-20 - Marco Clemencic
- Added a (C) function that returns the ROOT version (code), to be used in
Python to get the version of ROOT without importing cppyy.
! 2015-04-13 - Marco Clemencic
- Fixed visibility of gaudirun.py Python helper functions.
! 2015-04-13 - Marco Clemencic
- Implemented printing of alg sequences in C++ as a private function
(to avoid GaudiPython in gaudirun.py).
! 2015-04-12 - Marco Clemencic
- Added I/O dictionaries for KeyedContainerManager, missing when we do not
import GaudiPython in guadirun.py.
! 2015-04-10 - Marco Clemencic
- Added C helper functions to bootstrap from Python without GaudiPython.
! 2015-03-15 - Marco Clemencic
- GAUDI-1023: fail when re-declaring a property
- added hasProperty method to IProperty.
- added check to all the declareProperty methods in PropertyMgr
- added unit test executable for PropertyMgr
! 2015-03-15 - Marco Clemencic
- GAUDI-1024: Added deprecation warning to Tokenizer.h.
! 2015-03-14 - Marco Clemencic
- GAUDI-1024: Added Gaudi::Utils::AttribStringParser to replace Tokenizer
! 2015-04-13 - Marco Clemencic
- GAUDI-1018: Made empty VERBOSE equivalent to unset
! 2015-04-14 - Marco Clemencic
- Hide warning introduced with fix to GAUDI-312.
! 2015-04-14 - Stewart Martin-Haugh
- Fixed GAUDI-312: invalid read in Tokenizer.
! 2015-04-09 - Marco Clemencic
- Use C++11 functional instead of boost/function.hpp in IFileMgr.
! 2015-04-08 - Marco Clemencic
- Disable CPU features detection on aarch64 (ARM64).
! 2015-03-31 - Marco Clemencic
- Removed inclusion of ParsersFactory.h from Parsers.h (added with GAUDI-1011)
The inclusion of ParsersFactory.h simplify the creation of custom parsers,
but (because of the way ROOT 6 used headers) was causing huge penalties in
start up time (Gaudi tests taking twice the time) and an increased memory use
(detected in some LHCb tests).
! 2015-03-20 - Marco Clemencic
- GAUDI-1018: Respect VERBOSE setting in genconf and genconfuser.
! 2015-03-06 - Marco Clemencic
- Fixed GAUDI-1017: GaudiUtils::Map cannot be used as property after GAUDI-1011
! 2015-03-05 - Sasha Mazurov
- GAUDI-1011: Support std::tuple and std::array properties in jobs options
! 2015-03-05 - Marco Clemencic
- GAUDI-1016: add GaudiHandle::isSet() or isValid() method
Renamed getObject as isValid and made it public, added method "get" to get
the wrapped pointer without trying to retrieve it, and the method isSet() to
check if the wrapped pointer is not null (without trying to retrieve it).
! 2015-03-06 - Charles Leggett
- make ToolHandle constructor explicit
ToolHandle( const IInterface* parent = 0, bool createIf = true )
as it is badly abused. Also declare ToolHandle(int) as deleted.
============================= GaudiKernel v31r4 ==============================
! 2015-02-06 - Marco Clemencic
- Added methods to IToolSvc to get all the tool instances.
! 2015-02-03 - Marco Clemencic
- Added small tool to report the CPU capabilities (GAUDI-999) and a simple test
relying on the content of /proc/cpuinfo.
! 2015-02-03 - Gerhard Raven
- GAUDI-999: Add code which determines the 'instruction level' of the CPU
! 2015-02-03 - Marco Clemencic
- Fixed issue introduced with the fix to GAUDI-1001.
! 2015-02-02 - Marco Clemencic
- Fixed GAUDI-1001: '\' and '\n' not correctly interpreted by gaudirun.py
! 2015-01-26 - Marco Clemencic
- Removed duplicated tests.
! 2015-01-13 - Marco Clemencic
- Fixed warning in genreflex with ROOT 6.02.03.
============================= GaudiKernel v31r3 ==============================
! 2015-01-13 - Marco Clemencic
- Fixed regression introduced with commit f0b0a33
(GAUDI-993: more speed improvements in DataSvc::retrieveEntry)
! 2015-01-12 - Gerhard Raven
- GAUDI-993: Avoid recursion in DataSvc::i_retrieveEntry.
! 2015-01-09 - Marco Clemencic
- Modified GCCXML exclusions to work with the ATLAS version of gccxml.
! 2015-01-08 - Marco Clemencic
- Added the class StatusCode::ScopedDisableChecking to ignore all the
StatusCode instances produced in a scope.
! 2015-01-07 - Gerhard Raven
- GAUDI-995: improve Algorithm storage/management in AlgorithmManager
! 2015-01-07 - Gerhard Raven
- GAUDI-993: removed recursion in DataSvcHelpers::RegistryEntry::i_find
! 2015-01-07 - Gerhard Raven
- GAUDI-993: more speed improvements in DataSvc::retrieveEntry
! 2015-01-07 - Marco Clemencic
- Fixed g++ 4.9 warning (unused typedef).
! 2015-01-07 - Gerhard Raven
- Small performance improvements to StatusCode:
- added move constructor
- use std::make_shared instead of std::shared_ptr constructor
! 2015-01-06 - Marco Clemencic
- Added StatusCode::checkingEnabled() static method to check if the checking
is enabled or not.
! 2015-01-06 - Marco Clemencic
- Fixed wrong "unchecked StatusCode" reporting after patch GAUDI-992.
Modified the StatusCode::check() to correctly report the function also when
StatusCode::~StatusCode() is not inlined.
! 2014-12-10 - Gerhard Raven
- GAUDI-993: Improve string handling in DataSvc::retrieveEntry
Use boost::string_ref too speed up string manipulations.
! 2014-12-10 - Marco Clemencic
- Fixed mistake in patch GAUDI-992.
! 2014-12-09 - Gerhard Raven
- GAUDI-992: improve StatusCode::~StatusCode
Use small inlined destructor that delegates to another method for the check,
instead of using an off-lined destructor.
============================= GaudiKernel v31r2 ==============================
! 2014-11-19 - Marco Clemencic
- Fixed extra ';'.
! 2014-10-25 - Marco Clemencic
- Fixed a problem with the interpretation of \n and \t in .opts files.
============================= GaudiKernel v31r1 ==============================
! 2014-10-06 - Marco Clemencic
- Added (build-time) tests for GAUDI-905 and GAUDI-973.
! 2014-10-06 - Marco Clemencic
- GAUDI-973: make it possible to use StringKey in std::unordered_map
! 2014-10-06 - Gerhard Raven
- GAUDI-905: Add Gaudi::StringKey constructor from plain C-string
! 2014-09-18 - Marco Clemencic
- Fixed a test after the change in PluginService.
! 2014-05-07 - Sebastien Binet
- use new PluginService API (with C++11 variadic templates for the factories.)
- hide the C++11 constructs from Reflex as GCC-XML parser predates C++11
! 2014-09-18 - Marco Clemencic
- Fixed Eclipse Code Analysis warning.
! 2014-09-18 - Marco Clemencic
- Fixed warnings from genreflex (ROOT 6).
! 2014-07-11 - Marco Clemencic
- Removed references to the obsolete IFactory.
============================= GaudiKernel v31r0 ==============================
! 2014-07-04 - Marco Clemencic
- Fixed the test for GAUDI-975 to work without build directory.
! 2014-07-01 - Marco Clemencic
- removed some dead code in ConfigurableDb.py
! 2014-07-02 - Marco Clemencic
- GAUDI-975: relax the checks in genconf to allow custom component factories
Modified genconf not to fail if the return type of a factory is not known.
Added a test to verify the it works (CMake only).
! 2014-06-16 - Illya Shapoval
- Fix wrong handling of StatusCode in SysInitialize.
(fixing thus git commit #59d184b2ca275ed6ba798e7eab7c279756ae6698,
which broke compilation).
! 2014-06-03 - Charles Leggett
- EventContext: turn it into a real class, remove thread info
- ContextSpecificPtr: add evt num to thread local info
- Message: print out current slot/evt/thread on demand
via %E,%N,%X respectively
! 2014-05-08 - Charles Leggett
- a few fixes for gcc47
- backward compatibility for factories
- unchecked statusCode in MinimalEventLoopMgr::stop
# modified: GaudiKernel/GaudiKernel/Algorithm.h
# modified: GaudiKernel/GaudiKernel/DeclareFactoryEntries.h
# modified: GaudiKernel/doc/release.notes
# modified: GaudiKernel/src/Lib/ContextSpecificPtr.cpp
# modified: GaudiKernel/src/Lib/MinimalEventLoopMgr.cpp
! 2014-06-10 - Charles Leggett
- fix unchecked StatusCodes in AlgTool sysXXX methods
M src/Lib/AlgTool.cpp
! 2014-06-05 - Marco Clemencic
- Fixed crash in genconfuser in a special case.
! 2014-06-05 - Marco Clemencic
- Fixed spurious warning coming from genconfuser after the switch to the new
.confdb files.
! 2014-06-04 - Marco Clemencic
- Tentative fix for genconfuser for the new .confdb files (without _merge).
! 2014-05-27 - Marco Clemencic
- In order to remove the _merged.confdb and use a single installed .confdb:
- Modified loadConfigurableDb to handle transparently both plain .confdb
files and _merged.confdb files (if the merged one is present, ignore the
others).
- Minor code clean up in loadConfigurableDb.
- Added tests for loadConfigurableDb (CMake only).
! 2014-05-06 - Sebastien Binet
- fix bug #102404: implement a pure ascii based configurable-db.
these ascii files are now named .confdb (for the per package ones)
*_user.confdb (for the user ones) and *_merged.confdb (for the merged ones.)
============================= GaudiKernel v30r3 ==============================
! 2014-05-27 - Marco Clemencic
- Minor fix to CMake configuration (CMT equivalence).
! 2014-05-21 - Marco Clemencic
- Fixed minor typo in genconf.cpp.
! 2014-04-30 - Marco Clemencic
- Added command line option --no-init to genconf.
It disable to creation of the dummy __init__.py so that we can have better
control on when it is created in the CMake build (was causing warnings with
Ninja).
! 2014-05-21 - Marco Clemencic
- Moved dictionary for InterfaceID from GaudiPython to GaudiKernel.
! 2014-05-21 - Marco Clemencic
- Moved dictionary for GaudiHandle*Property from GaudiPython to GaudiKernel.
! 2014-05-15 - Beat Jost
- Added the interface IPublishSvc.
============================= GaudiKernel v30r2 ==============================
! 2014-03-21 - Marco Clemencic, Rolf Seuster, David Quarrie
- Re-enabled the DECLARE_FACTORY_ENTRIES family of macros (needed by ATLAS).
============================= GaudiKernel v30r1 ==============================
! 2014-03-18 - Ben Couturier
- Fixed bug #104127: remove hwaf configuration.
! 2014-03-03 - Marco Clemencic
- Changed the namespace used for __Instanitations in the dictionary to avoid
clashes in ROOT 6;
! 2014-02-20 - Marco Clemencic
- Added missing import to "GaudiKernel.Configurable".
! 2013-10-29 - Marco Clemencic
- Added Gaudi::Hive::ContextSpecificData, a sort of "smart reference"
equivalent to ContextSpecificPtr, but easier to use.
- Added unit tests for ContextSpecificData and extended tests for
ContextSpecificPtr.
! 2013-10-28 - Marco Clemencic
- Added unit test for Gaudi::Hive::ContextSpecificPtr.
! 2013-10-27 - Marco Clemencic
- Added Gaudi::Hive::ContextSpecificPtr, a smart pointer with independent
values for different tasks.
In addition to the standard smart pointer functionalities, it features:
- ``accumulate`` to allow gathering of informations collected in different
contexts (slots)
- ``for_each`` to call a function on each pointer
- ``deleteAll`` to delete all the created objects
============================= GaudiKernel v30r0 ==============================
! 2014-02-10 - Marco Clemencic
- Modified applyConfigurableUsers implementations to print the configurables
applied on stderr if the environment variable GAUDI_DEBUG_CONF_USER is
defined.
! 2014-02-10 - Marco Clemencic
- Keep the buggy implementation of 'applyConfigurableUsers()' (bug #103803) to
provide backward compatibility until all the problems with the configuration
are fixed.
! 2014-02-07 - Marco Clemencic
- Fixed bug #103808: regression introduced with the fix to bug #103803
The problem was that ConfigurableUser instances not enabled were not
correctly taken into account in the graph of dependencies.
! 2014-02-06 - Marco Clemencic
- Fixed bug #103803: handle correctly ConfUsers created during the apply step.
! 2014-02-03 - Marco Clemencic
- Do not generate configurables for the factory aliases used for backward
compatibility with the Reflex Plugin Service.
! 2014-01-31 - Marco Clemencic
- Replaced non-ASCII characters in string literals with the corresponding
escape sequence.
! 2014-01-17 - Marco Clemencic
- Fixed pretty-printer of Gaudi::StateMachine::State in Clang.
! 2014-01-14 - Marco Clemencic
- Replaced dummy IDataSelector declaration with a typedef (fixes a C++11
warning).
! 2014-01-08 - Marco Clemencic
- Further fix (in System::loadDynamicLib) to cure the regression in the option
--load-library of genconf.
! 2013-12-29 - Marco Clemencic
- Fixed a regression with the option --load-library of genconf.
! 2013-12-11 - Sebastien Binet
- Added hwaf configuration files.
! 2013-12-05 - Marco Clemencic
- Re-disabled boost::shared_ptr to remove the dependency on ROOT in
StatusCode.h. For GCCXML we hide the actual implementation.
! 2013-12-05 - Marco Clemencic
- Re-enabled boost::shared_ptr for ROOT 5 (gccxml does not understand C++11).
! 2013-12-04 - Marco Clemencic
- Replaced boost::shared_ptr with std::shared_ptr when using C++11.
See https://sft.its.cern.ch/jira/browse/ROOT-5806
! 2013-10-24 - Marco Clemencic
- Added a small Python function to simplify enabling and disabling of
specific ROOT 6 work-arounds.
In Python use:
from GaudiKernel import ROOT6WorkAroundEnabled
if ROOT6WorkAroundEnabled('work-around-id'):
# code for my work-around ...
To disable the work-around set the environment variable ROOT6_WORK_AROUND
to 'none' or '-work-around-id' (a comma separated list is accepted).
! 2013-10-03 - Marco Clemencic
- Added missing (needed) include in StringKey.h.
! 2013-08-27 - Marco Clemencic
- Fixed compile-time issue when symbol hiding is enabled (gcc 4.7).
! 2013-07-30 - Marco Clemencic
- Applied the change to factory declarations needed for private/protected
constructors to Converters too.
- Removed the macros DECLARE_CONVERTER to avoid confusion with the obsolete
ones with the same name.
! 2013-07-26 - Marco Clemencic
- Ported new GaudiPluginService to CMT.
! 2013-07-26 - Marco Clemencic
- Fixed a warning.
! 2013-07-25 - Marco Clemencic
- Fixed mistake in the name of a macro.
! 2013-07-25 - Marco Clemencic
- Fixed a "misbalance warning" in genconf.
! 2013-07-25 - Marco Clemencic
- Minor updates to a couple of macros.
! 2013-07-25 - Marco Clemencic
- Modified factory declarations to allow private/protected constructors.
! 2013-07-19 - Marco Clemencic
- Improved the printout of genconf.
! 2013-07-19 - Marco Clemencic
- Clean up in the use of the new PluginService.
! 2013-07-18 - Marco Clemencic
- Removed the need of AlgFactory.h, SvcFactory.h, ToolFactory.h, AudFactory.h
and CnvFactory.h.
- Moved the factories typedefs from the global namespace to the class scope.
- Introduced backward compatibility hacks to handle non-public constructors
(the hack can be disabled defining the macro GAUDI_NEW_PLUGIN_SERVICE).
! 2013-07-18 - Marco Clemencic
- Fixed compilation problem on slc6-gcc46.
! 2013-07-17 - Marco Clemencic
- Use the new ROOT-free Plugin Service.
! 2013-07-17 - Marco Clemencic
- Removed factories forward declarations.
! 2013-07-03 - Marco Clemencic
- genconf.cpp: replaces Reflex::SharedLibrary::Load with the equivalent Gaudi
function.
- Added test for System::currentTime.
- Added a GaudiKernel/PluginService.h to hide the technical implementation of
the plugin service for the migration to ROOT 6.
- Replaced references to ROOT::Reflex::PluginService with Gaudi::PluginService.
============================= GaudiKernel v29r1 ==============================
============================= GaudiKernel-29-00-02 =============================
! 2013-10-24 - Charles Leggett
- add IIncidentSvc::getListeners(vector<IIncidentListeners*>, IncType) -
return all clients of a specific incident type
- add IncidentType::SvcPostFinalize
M GaudiKernel/IIncidentSvc.h
M GaudiKernel/Incident.h
============================= GaudiKernel-29-00-01 =============================
! 2013-09-30 - Charles Leggett
- added io_finalize to IIoComponent.h
currently not pure virtual, to ease client transition. will be made pure
when transition complete.
M GaudiKernel/IIoComponent.h
============================= GaudiKernel-29-00-00 =============================
! 2013-06-24 - Marco Clemencic
- restored presetting of Services outputLevel from MessageSvc (needed to use
the properties SetDebug, SetVerbose, etc of MessageSvc).
- restored inheritance of JobHistory on IVersHistoryObj to 'virtual public'.
! 2013-04-05 - Charles Leggett
- add new optional parameter to genconf to allow import/declaration of
user specified module
M src/Util/genconf.cpp
! 2013-04-02 - Charles Leggett
- use a const int for default priority of services
M GaudiKernel/ISvcManager.h
! 2013-04-02 - Charles Leggett
- change default priority of services to 100 from 10
M GaudiKernel/ISvcManager.h
! 2013-03-20 - Charles Leggett
- fix FileIncident dtor
M GaudiKernel/FileIncident.h
! 2013-03-19 - Charles Leggett
several fixes to bring trunk in line with GaudiKernel-27-13-25
- fix inheritance structure of History objects
M GaudiKernel/AlgToolHistory.h
M GaudiKernel/JobHistory.h
M GaudiKernel/AlgorithmHistory.h
M GaudiKernel/ServiceHistory.h
- Service.cpp: don't preset outputLevel
M src/Lib/Service.cpp
- FileIncident.h: remove payload, move vdtor
M GaudiKernel/FileIncident.h
- TypeNameString.h: include <ostream>
M GaudiKernel/TypeNameString.h
! 2013-03-06 - Charles Leggett
- move virtual dtor of IFileMgr and IoComponentMgr to VirtualDestructors.cpp
D src/Lib/IIoComponentMgr.cpp
D src/Lib/IIoComponent.cpp
M src/Lib/VirtualDestructors.cpp
D src/Lib/IFileMgr.cpp
! 2013-03-06 - Charles Leggett
- add/update IFileMgr and IoComponentMgr
A src/Lib/IIoComponentMgr.cpp
A src/Lib/IIoComponent.cpp
A src/Lib/IFileMgr.cpp
A GaudiKernel/IFileMgr.h
M GaudiKernel/IIoComponentMgr.h
>>>>>>> master
============================= GaudiKernel v28r9 ==============================
! 2013-08-27 - Marco Clemencic
- Fixed compile-time issue when symbol hiding is enabled (gcc 4.7).
! 2013-07-19 - Marco Clemencic
- Replaced "#ifdef linux" with "#ifdef __linux" (more reliable: Rolf Seuster
reported that "linux" is not defined when using C++11).
============================= GaudiKernel v28r8 ==============================
! 2013-07-04 - Marco Clemencic
- Updated the exclusion list in make_patch.py.
! 2013-07-03 - Marco Clemencic
- Added test for System::currentTime.
! 2013-06-27 - Marco Clemencic
- Fixed CFHEP-78: configurables created after applyConfigurableUser()
Force the instantiation of all Handles properties during the call to
applyConfigurableUser.
https://sft.its.cern.ch/jira/browse/CFHEP-78
! 2013-04-09 - Hubert Degaudenzi
- src/Lib/System.cpp: fixed cppcheck warning.
- GaudiKernel/KeyedObject.h: idem
- GaudiKernel/ServiceHandle.h: idem
============================= GaudiKernel v28r7 ==============================
! 2013-04-25 - Marco Clemencic
- Added virtual destructors for IConverter and IConversionSvc to fix issue
CFHEP-87 <https://sft.its.cern.ch/jira/browse/CFHEP-87>.
! 2013-04-23 - Marco Clemencic
- Fixed Eclipse static analyzer warning.
! 2013-04-22 - Marco Clemencic
- Fixed more Clang warnings.
! 2013-04-16 - Marco Clemencic
- Fixed Clang warnings.
============================= GaudiKernel v28r6 ==============================
! 2013-02-21 - Marco Clemencic
- Fixed compilation with CMT on Ubuntu 12.10 (gcc 4.7.2).
! 2013-01-30 - Marco Clemencic
- Fixed a problem in the detection of Boost 1.50 (Sleep.cpp).
============================= GaudiKernel v28r5 ==============================
! 2013-01-15 - Marco Clemencic
- Minor change in ConversionSvc constructor to avoid a pointless call to
queryInterface.
============================= GaudiKernel v28r4 ==============================
! 2012-11-12 - Marco Clemencic
- Define the incident and return code for corrupted input files.
! 2012-11-05 - Marco Clemencic
- Added tests/src/parsers.cpp to the QMTest test suite.
! 2012-10-22 - Marco Clemencic
- Fixed SerialTaskQueue_test to compile with LCG g++ 4.6.2 on SLC6.
! 2012-10-21 - Marco Clemencic
- Added implementation of a serial task queue: Gaudi::SerialTaskQueue (based on
the TBB Pattern 'Local Serializer').
Users of SerialTaskQueue must implement the tasks to be executed as
specializations of the class Gaudi::SerialTaskQueue::WorkItem, overriding the
member function 'run()'.
Tasks are enqueued with the method 'add(WorkItem*)' of SerialTaskQueue.
The destructor ensures that all the tasks are completed before giving back
control.
============================= GaudiKernel v28r3 ==============================
! 2012-09-13 - Marco Clemencic
- Fixed compilation warnings.
! 2012-09-10 - Benedikt Hegner
- Added missing copy constructor and assignment operator to 'implementsN<>'
base class.
They should not be needed because components cannot not really be copied or
cloned, but in some cases there are copy constructors and assignment
operators defined in the derived classes and in those cases the reference
count should be set to 0 in the initialization of a new object and not
touched by an assignment.
! 2012-09-05 - Marco Clemencic
- Fixed bug #96673: spurious warnings in GenConfUser
Modified genconfuser.py to extend the submodules search path for the package
being processed.
! 2012-08-25 - Marco Clemencic
- Modified genconfuser.py to better discover the existing configurables in the
CMake-based build.
! 2012-08-22 - Marco Clemencic
- Added option --debug to 'genconfuser.py'.
! 2012-07-27 - Marco Clemencic
- Modified ConfigurableDb.py to search for *_merged_confDb.py in all the dirs
of PYTHONPATH and not only in the InstallArea.
It is needed to be able to run the tests from the build directory (CMake).
- Modified the test for bug #87340 to work without the installation of
libGaudiKernel.so (CMake).
- Rationalized the permissions of files in the repository.
! 2012-07-13 - Marco Clemencic
- Fixed a problem with symbols visibility.
! 2012-07-12 - Marco Clemencic
- Modified Gaudi::Sleep and Gaudi::NanoSleep to compile with Boost 1.50.
! 2012-06-28 - Marco Clemencic
- Fixed bug #95733: GaudiKernel::ToStream truncates numbers < 1e-8
Use ios::showpoint instead of ios::fixed.
============================= GaudiKernel v28r2 ==============================
! 2012-06-08 - Marco Clemencic
- Added CMake configuration files.
! 2012-06-07 - Marco Clemencic
- Fixed inconsistency in SharedObjectContainer (found by Clang).
- Fixed compilation with Clang (lookup of operator<<).
- Fixed Clang warnings.
! 2012-05-05 - Marco Clemencic
- Fixed some doxygen comments.
! 2012-03-26 - Marco Clemencic
- Added missing __init__.py in python/GaudiKernel
============================= GaudiKernel v28r1 ==============================
! 2012-02-13 - Marco Clemencic
- Fixed compatibility problem with Python 2.7.
! 2012-02-06 - Sasha Mazurov
- Patch #5204: GaudiKernel parsers: allow 'L' suffix in integer literals
============================= GaudiKernel v28r0 ==============================
! 2012-01-25 - Marco Clemencic
- Added a specific application return code for failure during finalization.
! 2012-01-16 - Marco Clemencic
- Added interfaces for tools used to add dynamic mapping to DataOnDemandSvc:
IDODNodeMapper, IDODAlgMapper
- Added output stream operator to Gaudi::Utils::TypeNameString.
! 2011-12-16 - Marco Clemencic
- Fixed genconfuser.py to take into account the new location of the genConf
directory during the build.
! 2011-12-10 - Marco Clemencic
- Print an error message if the input data stream cannot be initialized.
! 2011-12-08 - Marco Clemencic
- Fixed bug #89628: Missing const methods in CommonMessaging.
! 2011-12-07 - Marco Clemencic
- Fixed bug #89653: Gaudi is not ready for Boost 1.48 (filesystem V3)
! 2011-12-05 - Marco Clemencic
- Removed the unused FastContainerSvc.
! 2011-12-01 - Chris Jones
- Fixed bug #85377: GaudiTuple tuple does not understand ulonglong
Add support for long long and unsigned long long data types
! 2011-11-22 - Marco Clemencic
- Fixed gcc 4.6 warning: cast to pointer from integer of different size
(-Wint-to-pointer-cast)
- Fixed Eclipse CDT Analyzer warning.
! 2011-11-16 - Marco Clemencic
- Fixed the problem with undefined size_t in GaudiKernel/Map.h
! 2011-11-01 - Marco Clemencic
- Moved core services out of GaudiSvc and into the new packages GaudiCoreSvc
and GaudiCommonSvc. (patch #1816)
Use GaudiCoreSvc for bootstrap and genconf.
============================= GaudiKernel v27r17 =============================
! 2011-10-27 - Marco Clemencic
- Introduced the function System::getProcessTime(pid), the helper class
ProcessTime and a templated version of adjustTime in GaudiKernel/Timing.h
(bug #87341).
- Added unit test for getProcessTime and ProcessTime.
- Fixed bug #87341: performance problem in ChronoEntity
Modified ChronoEntity to use getProcessTime and ProcessTime.
- Added test to detect bug #87340
(code bloat because of MessageStream operator<<)
- Fixed bug #87340: code bloat because of MessageStream operator<<
Added (as suggested) an explicit implementation of operator<< for
"const char *".
! 2011-09-22 - Marco Clemencic
- Set the Windows link-time option /expectedoutputsize explicitly only for
GaudiKernel.
============================= GaudiKernel v27r16 =============================
! 2011-09-02 - Marco Clemencic
- Fixed bug #86303: new parses not allowing empty maps
! 2011-09-01 - Sasha Mazurov
- Patch #5027: fixed a problem in the parsing of map representations
============================= GaudiKernel v27r15 =============================
! 2011-08-26 - Sebastien Binet
- Fixed bug #82435: Possible genConf bug in dealing with vector<double> filled
with zeros by default.
! 2011-08-08 - Marco Clemencic
- Added the non-templated method AlgTool::service
- This makes AlgTool more similar to Algorithm, in order to simplify some
code in GaudiCommon.
- Fixing bug #83775: unprotected MSG::DEBUG/VERBOSE
- ServiceLocatorHelper
- MinimalEventLoopMgr
- Fixed a bug in Service that was causing an inconsistency between the output
level of the service and the table in MessageSvc.
! 2011-08-07 - Marco Clemencic
- Modified Gaudi::Cast to use InterfaceID instead of type_info.
- Modified CommonMessaging to be able to get the current output level from the
embedded MsgStream.
! 2011-08-05 - Marco Clemencic
- Fixing bug #83775: unprotected MSG::DEBUG/VERBOSE
Fixed Algorithm, Service, DataSvc
- Modified CommonMessaging (and Service) to correctly take into account
changes to the output level happening after the cached MsgStream is created.
! 2011-08-04 - Marco Clemencic
- Fixed bug #84663: allow access to addresses of private members of StatEntity
Changed the signature of the methods returning the internal data members
to return a const& instead of a copy.
! 2011-08-04 - Charles Leggett
- Patch #4941: Added interfaces IIoComponent and IIoComponentMgr
! 2011-08-04 - Marco Clemencic
- Removed implementation of parsers that are not needed to reduce compilation
time and size (patch #4891)
! 2011-08-03 - Sasha Mazurov
- Renamed GaudiKernel/Grammars.h to GrammarsV2.h to allow easier backward
compatibility.
- Reintroduced the old (Spirit 1) headers Grammars.h and Parsers.icpp for
backward compatibility (with the introduction of a deprecation warning).
! 2011-08-02 - Marco Clemencic
- Fixed a compilation error on ICC (patch #4891)
! 2011-07-27 - Marco Clemencic
- Hidden compilation warnings in Grammars.h using the pragma "system_header".
! 2011-07-26 - Marco Clemencic
- Improved the stability of HistoryObj and IVersHistoryObj in dynamic_cast.
! 2011-07-26 - Markus Frank
- Patch #4999: Added virtual destructor implementation for IUpdateableIF
! 2011-07-25 - Marco Clemencic
- Fixed a compilation problem triggered by the changes in some header files.
! 2011-07-22 - Marco Clemencic
- Divided the bulk of parsers in several small files to speed up the
(parallel) compilation.
! 2011-07-22 - Sasha Mazurov
- Patch #4891: New parsers for Gaudi Configuration
- Fully rewritten parsers (less amount of code, more readable and more robust)
- Based on Boost.Spirit 2
- New parsers for std::set and std::list
- Job options files: variables introduced
! 2011-07-21 - Charles Leggett
- Patch #4943: Consolidate GaudiSvc and GaudiKernel patches in Atlas tags
Update HistorySvc to use new HistoryObj base classes, and provide XML output
! 2011-07-21 - Marco Clemencic
- Added use of 'UNLIKELY' in the destructor of StatusCode.
! 2011-07-21 - Charles Leggett
- Patch #4975: check for uncaught exceptions in StatusCode destructor
If a StatusCode is created in some alg, and an exception is thrown before
it's checked, when the stack is unwound it will trigger an unchecked status
code error from the StatusCodeSvc, which can mislead people as to the true
cause of the problem.
This patch checks for std::uncaught_exception() in the StatusCode destructor
before calling the StatusCodeSvc.
! 2011-06-27 - Marco Clemencic
- Fixed a problem with the compilation of genconf on ICC after the fix to
bug #83433.
! 2011-06-24 - Hubert Degaudenzi
- removed useless ";".
! 2011-06-23 - Marco Clemencic
- Fixed bug #83433: reject invalid properties in genconf
Modified genconf to use a regular expression to validate property names.
! 2011-06-23 - Hubert Degaudenzi
- fixed warnings from the eclipse code analysis engine.
! 2011-06-23 - Marco Clemencic
- Fixed bug #83524: Unprotected debug message in Service::initialize
- Fixed bug #83525: Usage of THIS in GaudiKernel/implements.h
Replaced THIS with T, as suggested.
============================= GaudiKernel v27r14 =============================
! 2011-04-19 - Marco Clemencic
- Fixed a defect spotted by Coverity in KeyedObject (UNINIT_CTOR).
! 2011-04-18 - Marco Clemencic
- Moved the LIKELY and UNLIKELY macros to GaudiKernel/Kernel.h
! 2011-04-15 - Charles Leggett
- added LIKELY and UNLIKELY macros to improve branch prediction for linux
A GaudiKernel/likely.h
! 2011-04-15 - Marco Clemencic
- Fixed a warning triggered by the macro NDEBUG.
- Fixes to patch #4820.
! 2011-04-14 - Markus Frank
- Patch #4820: fix bug #80947
Fix bug accessing system-memory information, if process memory is > 4GB.
! 2011-04-08 - Marco Clemencic
- Introduced two new incidents: BeginProcessing and EndProcessing.
They are needed to reintroduce the signals around the processing loop as
it was the case for BeginEvent and EndEvent before GaudiSvc v17r0.
! 2011-03-28 - Marco Clemencic
- Fixed a typo.
! 2011-03-23 - Marco Clemencic
- Fixed VC9 warnings.
- Replaced C-style string manipulation and formatting with C++ (and Boost)
implementations.
- Disabled some warnings.
- Removed some "empty" files (files producing empty objects files),
replacing them with a test .cpp file to ensure that the headers do not
contain syntax errors.
! 2011-03-22 - Marco Clemencic
- Added a function to convert IAuditor::StandardEventType to const char*,
(toStr) needed to simplify the implementation of some auditors.
! 2011-03-17 - Marco Clemencic
- Modified DirSearchPath to remove boost::filesystem::no_check. It is not
needed and breaks on MacOSX in debug mode (at least with Boost 1.44).
See patch #4735.
- Fixed PathResolver_test to work on MacOSX.
! 2011-03-16 - Charles Leggett, Marco Clemencic
- Patch #4722: detect unprotected DEBUG and VERBOSE messages
============================= GaudiKernel v27r13 =============================
! 2011-02-21 - Charles Leggett
- Fixed bug #77534: this-> needed in Property.h
============================= GaudiKernel v27r12 =============================
! 2011-01-19 - Markus Frank
- Fixes for bug #77109.
Add a virtual "update()" method to the DataObject.
This method should then be called unconditionally by converters.
Remove the obsolete "serialize()" methods.
Apply this method to the keyed containers and replace the
existing "configureDirectAccess()" method with "update()".
(patch #4613)
! 2011-01-14 - Markus Frank
- Patch #4607: Do not store process id.
ProcessDescriptor.cpp Do not locally store the process id (pid).
This causes problems e.g. after a call to fork(), because the data
accessed are those of the parent process, not the newly created process.
! 2011-01-11 - Marco Clemencic
- Fixed some ICC remarks.
! 2011-01-07 - Marco Cattaneo
- Locally disable few ICC remarks.
! 2011-01-06 - Marco Clemencic
- removed extra ';'
- added QMTest wrapper for PathResolver_test and fixed compilation errors on
windows
============================= GaudiKernel v27r11p1 =============================
! 2010-12-05 - Charles Leggett
- Added PathResolver tests as per patch #4394
M cmt/requirements
A tests/PathResolver/...
A tests/src/PathResolver_test.cpp
- bug #76057: PathResolver looks for file as if fully specified first
M src/Lib/PathResolver.cpp
! 2010-12-01 - Marco Clemencic
- Fixed bug #70770: inconsistent order of stop/finalize of sub-algorithms
As suggested, modified the order in which the sub-algorithms are stopped
to match the order in which they are finalized.
============================= GaudiKernel v27r11 =============================
! 2010-09-20 - Marco Clemencic
- Fixed bug #70956: Add method to find the reason for termination of the
event loop
- Defined constants for application return codes and minor change to the logic
(GaudiKernel/AppReturnCode.h)
- Set appropriate return code in case of "scheduled stop" and unhandled exceptions
(MinimalEventLoopMgr)
! 2010-09-17 - Vanya Belyaev
- Fixed bug #72170: Python Parsers and map of <string, unsigned int>
Added support for map<string,unsigned int>.
! 2010-09-17 - Marco Clemencic
- Minor fix to make_patch.py
! 2010-09-14 - Marco Clemencic
- Fixed a warning introduced with patch #4394.
! 2010-09-13 - Charles Leggett
- Patch #4394: rewriting PathResolver using boost::filesystem
- simplified the code
- small change in behavior:
if the search for "B/a.txt" is not successful, the original PathResolver
would traverse the search list again looking for just "a.txt"; not it is
not the case anymore
! 2010-08-23 - Marco Clemencic
- Modified "loadConfigurableDb" to be able to find *_merged_confDb.py in any
subdirectory of the InstallArea (needed to be able to install platform-
independent files in the platform-specific directories, see GaudiPolicy).
! 2010-08-20 - Marco Clemencic
- Modified src/Lib/Debugger.cpp to compile on VC9.
! 2010-08-19 - Marco Clemencic
- Minor fix in SmartDataPtr.h to allow code analysis with Coverity.
- Fix for ICC in GaudiKernel/StreamBuffer.h.
! 2010-08-18 - Charles Leggett
- Patch #4323: allow user defined heavy ion handling in PartPropSvc
============================= GaudiKernel v27r10 =============================
! 2010-07-12 - Charles Leggett
- Patch #4216: Don't check StatusCode when GaudiException is thrown
! 2010-06-25 - Charles Leggett
- Patch #4215: updates to THistSvc
- expanded interface to get all hists/trees in a file/dir
- add class FileIncident
(includes patch #3447)
! 2010-06-24 - Markus Frank
- Patch #4211: Fix bug in data length calculation for fixed
length ntuple items arrays/matrices
! 2010-06-23 - Marco Clemencic
- Fixed bug #67543: InputCopyStream copies data not defined in its OptItemList
Added The interface for a tool that returns the list of objects of the
transient store: IDataStoreLeaves.
- Fixed bug #66973: Bug in SharedObjectsContainer
Removed the copy constructor of SharedObjectsContainer.
! 2010-06-07 - Marco Clemencic
- Fixed bug #66454: Fixing Converter::service_i
! 2010-06-21 - Charles Leggett
- Fix to bug #68555: getting const services
! 2010-06-07 - Marco Clemencic
- Fixed a warning introduced with patch #3677.
! 2010-05-25 - Vanya Belyaev
- Patch #3677: Iteration over map-like containers in python
Added an empty base class for Map and HashMap to be able to easily pythonize
the maps and make them behave as Python dictionaries.
! 2010-05-11 - Marco Clemencic
- Fixed bug #64571: Python 2.6 warnings
Removed extra arguments in the call to "object.__new__".
============================= GaudiKernel v27r9 ==============================
! 2010-04-22 - Marco Clemencic
- Use the property "ReturnCode" of the ApplicationMgr as return value of the
application (Gaudi.exe).
- Added a couple of helper functions to easily set/get the return code of the
application (GaudiKernel/AppReturnCode.h).
! 2010-04-20 - Marco Clemencic
- Removed ICC warnings and remarks.
! 2010-04-16 - Vanya Belyaev
- Patch #3943: Good names for StatEntity methods
- GaudiKernel/StatEntity.h: add new names for "ugly methods"
flag -> sum
flagMean -> mean
flagMeanErr -> meanErr
flagRMS -> rms
...
All "flag" methods are moved into "legacy"-section.
The old methods were OK when Counter has two fields "flag"(additive) and
"weight" (multiplicative), but after removal of "weight" all these flag*
methods are ugly.
- Patch #3989: Tiny (but very important) fix for Gaudi::RangeBase_
The patch removes the protected destructor form Gaudi::RangeBase_.
============================= GaudiKernel v27r8 ==============================
! 2010-03-16 -Charles Leggett
- Patch #3718: Unchecked StatusCode in GaudiKernel/Algorithm.cpp
Modified the code to avoid Unchecked StatusCode in case of failures.
! 2010-03-15 - Markus Frank
- Patch #3912: Add a IInterface-based version of IUpdateable.
! 2010-03-08 - Charles Leggett
- Fixed bug #63502: GaudiKernel/Converter.cpp don't assume converter
is a ConverterSvc when retrieving name
! 2010-03-02 - Marco Clemencic
- Improvements in ConfigurableUser:
- Allow dependency between named ConfigurableUser instances.
The entry in __used_configurables__ can be a tuple where the first element
is the class (or class name) and the second element is the instance name.
If the instance name is equivalent to False (None, "", etc.), the name of
the instance is obtained through the method self._instanceName() that, by
default, returns "<userclass>_<class>", but can be overridden.
- Added a method to get a used instance by name: self.getUsedInstance().
- Minor fix in Configurable: allow to instantiate it passing the name as a
keyword argument (it was failing if the instance already existed).
- Fixed a race condition in WatchdogThread.
! 2010-02-26 - Marco Clemencic
- Added a simple generic class (WatchdogThread) for implementation of software
watchdogs (in the sense of a secondary thread that periodically checks that
an event has occurred).
A derived class should implement (at least) the method "action()", which is
invoked when the time-out occurs without that another thread called the
"ping()" method of the watchdog.
! 2010-01-29 - Marco Clemencic
- Fixed icc remark #1599: declaration hides variable
- Fixed icc warning #858: type qualifier on return type is meaningless
- Fixed icc warning #279: controlling expression is constant
! 2010-01-28 - Marco Clemencic
- Fixed icc remark #424: extra ";" ignored
- Fixed icc remark #111: statement is unreachable
- Fixed icc remark #193: zero used for undefined preprocessing identifier
- Fixed icc remark #522: function "X" redeclared "inline" after being called
- Fixed icc remark #304: access control not specified ("private" by default)
- Fixed icc remark #177: X declared but never referenced
- Fixed icc remark #193: zero used for undefined preprocessing identifier X
============================= GaudiKernel v27r7 ==============================
! 2010-01-19 - Markus Frank
- Fixed EventSelectorDataStream to fit with the changes in GaudiSvc
(support of 'SVC=' in EventCollectionSvc) and removed references to SICB.
! 2010-01-15 - Marco Clemencic
- Fixed compilation on icc 11.
- cmt/requirements:
removed the cppflag -Wno-unused-parameter because not understood by icc
(only for icc).
- GaudiKernel/HashMap.h:
modified to use the same code as gcc < 4.3 (ext/hash_map)
- GaudiKernel/SmartDataPtr.h:
disabled (icc only) a trick to avoid problems with hidden operator=,
otherwise icc gives the error
internal error: assertion failed: add_symbol_to_overload_list
- src/Lib/Bootstrap.cpp:
removed the method <anonymous>::ShadowEntry::operator=, never used and not
accessible outside the translation unit, to avoid a warning.
- src/Lib/System.cpp:
removed the declaration "extern char **environ;" from within the method
System::getEnv() (if on linux), because not needed and icc was trying to
resolve it as System::environ.
- scripts/make_patch.py:
updated the default exclusion list.
! 2010-01-15 - Marco Clemencic
- Fixed a bug in genconf: the third argument passed to the factory of tools was
IService* instead of IInterface* (it works as long as the memory address is
the same).
! 2010-01-11 - Vanya Belyaev
- Patch #3478: Registration for Algorithm Context Service
Moved the registration for the context service from GaudiAlgorithm to Algorithm
! 2010-01-11 - Paolo Calafiura
- Fixed bug #61169: confusing behavior of PathResolver when dealing with relative paths
Fixed handling of paths like "../test/A:../test/B".
! 2010-01-08 - Marco Clemencic
- Fixed bug #61144: configuration problem for 'empty' tool handles
! 2009-12-17 - Vanya Belyaev
- Patch #3486: Class LockedChrono
Helper class to measure CPU-performance of highly recursive objects.
! 2009-12-15 - Marco Clemencic
- Fixed bug #59450: valgrind reports conditional or jump depends upon
uninitialized variable in ProcessDescriptor
Fixed following the suggestion in the bug report.
============================= GaudiKernel v27r6 ==============================
! 2009-11-09 - Marco Clemencic
- Fixed a problem with ConfigurableUser.propagateProperty when the property is
a list (or dictionary).
! 2009-11-09 - Vanya Belyaev
- Patch #3357: Comparison of floating point numbers
GaudiKernel/Lomont.h, src/Lib/Lomont.cpp
* The equality comparison of double numbers using as the metric the maximal
* number of Units in the Last Place (ULP).
* It is a slightly modified version of very efficient implementation
* of the initial Bruce Dawson's algorithm by Chris Lomont.
The functions are copied from Kernel/LHCbMath package
! 2009-11-09 - Marco Clemencic
- Modified the dictionary for DataObject to make the version persistent.
! 2009-10-29 - Marco Clemencic
- Fixed few minor problems (including a possible buffer overflow).
! 2009-10-23 - Marco Clemencic
- Modified genconfuser.py to also print a stack trace in case of ImportError.
================ GaudiKernel v27r5 ====================================
! 2009-10-19 - Marco Clemencic
- Improved error reporting in genconfuser.py in case of missing modules and
always fail on ImportError.
- Fixed a problem in genconfuser.py occurring when a ConfigurableUser was found
in more than one python module of the package. Not it is reported as existing
only in the first imported module.
! 2009-10-15 - Marco Clemencic
- Minor change to ConfigurableUser to allow the declaration of
__used_configurables__ with strings.
- Fixed a compilation (visibility) problem on gcc43 with GAUDI_V21 tag enabled
introduced by patch #2978.
! 2009-10-13 - Marco Clemencic
- Fixed compilation problem on Windows caused by patch #3223.
- Modified DirSearchPath_test to avoid "/tmp" to make it more Windows friendly.
- Disabled the support for LorentzVector as Property (patch #3223) on Windows
(compilation problem).
! 2009-10-12 - Marco Clemencic
- Normalization of white-spaces in Python files.
(using http://svn.python.org/projects/python/tags/r254/Tools/scripts/reindent.py)
! 2009-10-12 - Vanya Belyaev
- Patch #2978: GaudiKernel/StringKey.h
New class Gaudi::StringKey to be used as "Efficient" key.
Essentially it is just a string with pre-computed hash.
! 2009-10-08 - Vanya Belyaev
- Patch #3223: Add some more "Extended" property types to Gaudi
"Vectors"
Gaudi::Point3D
Gaudi::Vector3D
Gaudi::LorentzVector
"SVector"
ROOT::Math::SVector
"BoostArrays"
boost::arrays
"CArray"
C-arrays
These properties are not available "on-default" (why?)
To use these properties one needs to include the corresponding files
GaudiKernel/VectorsAsProperty.h
GaudiKernel/SVectorAsProperty.h
GaudiKernel/BoostArrayAsProperty.h
GaudiKernel/CArrayAsProperty.h
The usage is new proeprties is fairly trivial and illsutrated by
new exampeles in GaudiExamples package:
ExtenderProperties2,
ArrayProperties
BoostArrayProperties
Attention:
For *NOW* one needs to include these files before direct or
indirect inclusion of GaudiKernel/Property.h.
The problem comes from some invalid design of "generic"
function in GaudiKernel/ToStream.h (mia culpa).
I am goind to provide the redesigned version of ToStream.h,
but it will take some time.
For a time being one needs to take crea botu the
inclusion of new headers
! 2009-10-07 - Marco Clemencic
- Patch #3239: Moved Parsers.icpp to the public headers directory (GaudiKernel)
! 2009-10-02 - Marco Clemencic
- Fixed bug #55292: Algorithms are never deleted
- Fixed a problem in the reference counting of sub-algorithms.
! 2009-09-26 - Marco Clemencic
- Reverted the changes in GaudiException while looking for a better
solution (too many classes where relying on the internals of
GaudiException).
The other changes have been kept.
! 2009-09-25 - Marco Clemencic
- Slightly modified GaudiException, MsgStream end few others to reduce the
possibility of an exception in the middle of a catch block in case of
std::bad_alloc (which would result in an immediate exit/abort).
! 2009-09-24 - Rob Lambert
- Patch #3275: Patch to fix Incident consistencies
- Change in name of FailedOutputFile -> FailOutputFile for consistency
Incident.h
! 2009-09-15 - Rob Lambert
- Patch #3240: Patch to allow backward compatibility of Incidents
- Added a preprocessor define, which can be checked at compile time, and
ensures backward-compatibility of the LHCb project.
! 2009-09-08 - Rob Lambert
- Patch #3222: Patch to Issue incidents for Input Files
- Details required for the documentation of output
files in the Summary services
- Added method to EventSelectorDataStream
dbName, returns m_dbName, which contains the parsed dataset name
required for the issuing of an incident
- Added extra incident definitions to Incident.h
BeginOutputFile BeginInputFile
FailOutputFile FailInputFile
EndOutputFile EndInputFile
WroteToOutputFile
================ GaudiKernel v27r4 ====================================
! 2009-08-01 - Rob Lambert
- Patch #3174: Added ICounterSummarySvc.
This is a pure abstract interface to allow the persistance of
counters in a file. This will be implimented by LHCb in the
writing of an XMLSummary. StatEntities and Stat objects can be added.
! 2009-07-31 - Marco Clemencic
- Modified genconfuser.py to find the local configurables also when the file
python.zip does not contain them yet.
! 2009-07-30 - Marco Clemencic
- Fixed some doxygen warnings.
- Use of the tag "no-hide-warnings" to re-enable warnings due to external
libraries.
- Added a generic hash function in GaudiKernel/Hash.h (not used by default) to
allow simpler transition to the new Hash class introduced with patch #2979.
! 2009-07-29 - Marco Clemencic
- Modified the script genconfuser.py to accept an extra option to locate the
locker module.
- The scripts merge_files.py, ZipPythonDir.py and genconfuser.py can now be
synchronized with a "global lock file" defined with the environment variable
GAUDI_BUILD_LOCK (needed when using tbroadcast or equivalent).
! 2009-07-27 - Vanya Belyaev
- Patch #2979: Modified version of file GaudiKernel/Hash.h
- _WIN32 specific part (due to non-adequate stdext::hash_map) is removed,
since stdext::hash_map is not used anymore - GaudiUtils::HahsMap for
_WIN32 platform is using std::map instead
- The generic a'la Stroustrup implementation is removed (may break existing
code)
- For generic implementation relies on availability of hash_value function in
a spirit of boost. Boost provides the specializations for the basic
fundamental types as well for the standard containers
- there is no specialization for "void*"
! 2009-07-22 - Marco Clemencic
- Modified genconfuser.py to explicitly avoid errors if the imported file tries
to imports configurables that do not exist.
- Removed the obsolete merge_genconfDb.py.
! 2009-07-20 - Marco Clemencic
- Fixed a compilation warning in PropertyMgr.cpp.
- Added '-no_static' to the declaration of the libraries (implemented since CMT
v1r20p20081118).
! 2009-07-16 - Marco Clemencic
- Support for zipped python directories.
Modified loadConfigurableDb() to be able to locate the "*_merged_confDb.py"
inside the .zip files too.
================ GaudiKernel v27r3 ====================================
! 2009-07-08 - Marco Clemencic
- Removed the need for extend_interfaces1. Then necessary typedef is added by
the macro DeclareInterfaceID, simplifying a lot the changes. The drawback is
that when an interface extends more than one other interface, it must use
DeclareInterfaceIDMultiBase instead of DeclareInterfaceID.
- Removed the usage of extend_interfaces1.
================ GaudiKernel v27r2 ====================================
! 2009-06-29 - Marco Clemencic
- Removed the special compile time flag for the dictionary (problem fixed in
ROOT 5.22.00c)
! 2009-06-26 - Vanya Belyaev
- Patch #3019: std::map<std::string,std::pair<double,double> > as property
Useful for representation of ranges or value+/-error.
! 2009-06-26 - Gerhard Raven
- Patch from bug #52359: Allow setting of logging stream in ProcessJobOptions
A custom output stream can now be passed to
GaudiKernel.ProcessJobOptions.InstallRootLoggingHandler().
! 2009-06-23 - Marco Clemencic, Vanya Belyaev
- Patch #2980: Moved Range.h and NamedRange.h from GaudiUtils to GaudiKernel.
! 2009-06-22 - Marco Clemencic
- Disable the macros for the visibility of symbols on Windows, because it is
impossible (currently) to make coexists the gcc and VC ways.
- Added a compile time flag for the dictionary to hide warnings.
- Fixed some compilation problems on Win32.
! 2009-06-15 - Hubert Degaudenzi
- use the new LCG tag convention.
! 2009-05-29 - Marco Cattaneo
- Added "define NOMINMAX" in boost_allocator.h to avoid compilation problems on
Windows.
! 2009-05-25 - Marco Clemencic
- Fixed bug #45517: Units not taken into account in .opts files
Added the function importUnits() to populate from python the units used in a
.opts file.
! 2009-05-20 - Yushu Yao
- Patch #2975: ServiceHandleArray
Added ServiceHandleArray, similar to ToolHandleArray, but for services.
================ GaudiKernel v27r1 ====================================
! 2009-05-15 - Marco Clemencic
- Fixed bug #50389: AppMgr.algorithm/tool/algorithms does not work for
GaudiPython::PyAlg<TYPE>
Changed the inheritance from "implements#": replaced "virtual public" with
"public" (more correct and does not confuse PyROOT).
! 2009-05-14 - Marco Clemencic
- Fixed an extra "release" of EventDataSvc in EventSelectorDataStream.
At each new file, the reference count was artificially decreased by 1,
causing a segmentation fault during finalization.
! 2009-05-13 - Eric Van Herwijnen
- Patch #2998: Extension of IMonitorSvc for StatEntity
Added a declareInfo method for StatEntity instances.
! 2009-05-07 - Marco Clemencic
- Added backward compatibility hack in SmartIF: SmartIF::pRef.
Can be disabled with the macros GAUDI_V22_API and NEW_SMARTIF.
- Added a temporary hack to allow the print out of a SmartIF instance.
! 2009-05-06 - Marco Clemencic
- Simplified the implementation of SmartIF, removing the unnecessary base
class. It requires some more code duplication in the implementation of
SmartIF<IInterface>.
Part of the simplification comes from auto_ptr and the Boost smart pointers.
Note: NOT backward compatible.
! 2009-04-27 - Marco Clemencic
- Added specific macros to disable specific backward compatibility hacks.
The hacks are all enabled with the preprocessor macro GAUDI_V20_COMPAT,
and they are all disabled if the macro is not defined.
Each of them can be disabled independently of the others using the
following macros (enabled with the same CMTEXTRATAG):
- G21_NEW_INTERFACES: new interfaces and interfaces ids
- G21_HIDE_SYMBOLS: enable symbol visibility control
- G21_NO_ENDREQ: remove the obsolete endreq
Some hacks are disabled by the macro GAUDI_V22_API and can be independently
disabled with the macros:
- G22_NEW_SVCLOCATOR: backward incompatible changes to ISvcLocator etc.
Obsolete/deprecated methods and functions (kept with GAUDI_V20_COMPAT)
can be removed with the macros G21_NO_DEPRECATED and G22_NO_DEPRECATED.
================ GaudiKernel v27r0 ====================================
! 2009-04-08 - Marco Clemencic
- Fixed bug #47258: gaudirun.py -o option.opts option.py introduces
explicit \n and \t in strings
! 2009-04-08 - Marco Clemencic, Vanya Belyaev
- Fixed bug #48401: No dictionaries for IStatSvc and IChronoSvc
! 2009-04-07 - Marco Clemencic
- Moved back the namespace MSG to the global namespace.
! 2009-04-06 - Charles Leggett
- Fixed bug #48889: Copy and paste errors in MinimalEventLoopMgr
! 2009-04-06 - Marco Clemencic
- Renamed back the namespace Msg to MSG and moved it into the namespace Gaudi.
The backward compatibility is obtained with a namespace alias, that is
enabled with GAUDI_V20_COMPAT and can be selectively disabled with the macro
NO_OLD_MSG_NAMESPACE.
- Renamed back INamed to INamedInterface.
! 2009-04-02 - Charles Leggett
- Patch #2867: Propagate finalize errors of sub-algorithms.
- Patch #2871: Propagate errors in Property callbacks.
Changed the return value of Property::useUpdateHandler() and added a
try-catch to trap exceptions and return a failure in that case.
! 2009-03-18 - Marco Clemencic
- Minor change in Service::service<T> to avoid a problem with an old gccxml
(ROOT 5.18).
! 2009-03-13 - Marco Clemencic
- Task #9061: Introduction of component managers
- Added the IComponentManager interface to allow a common and generic
handling of managers. A basic implementation is provided too
(currently used only by ServiceManager and AlgorithmManager)
The FSM transitions are accessed through the IStateful interface, instead
of specific methods like initializeServices or finalizeAlgorithms.
- Simplified the interfaces ISvcLocator, ISvcManager, IAlgManager reducing
the methods. The new format is enabled with the cpp macro GAUDI_V22_API.
The main function now returns a SmartIF instead of a StatusCode.
- Added a templated base class (CommonMessaging) to instrument classes with
common messaging functionalities: msgSvc(), caching of the message stream,
info(), etc.
- Disabled the constructor of InterfaceID from a long (conditional to
GAUDI_V20_COMPAT). The result was not correct.
- Removed "void** operator& ()" from SmartIF because prevents the creation of
std::list<SmartIF<T> >.
- Replaced the small class "ListItem" with a more explicit "TypeNameString"
with the same implementation.
- Code adapted to the changes in the API.
! 2009-03-05 - Marco Clemencic
- Added a macro to disable the longlong typedef: NO_LONGLONG_TYPEDEF.
! 2009-02-19 - Marco Clemencic
- Patch #2790: Rename the namespace MSG to Msg
! 2009-02-06 - Marco Clemencic
- Moved the implementation of the methods addRef and release to the templated
base class implements<> (avoids duplication).
- Modified implements.h to use preprocessor macros instead of replicated code.
- Fixed a problem with MinimalEventLoopMgr::executeEvent. An AbortEvent
incident fired by the last top alg in the list caused the skipping of the
following event.
! 2009-01-30 - Marco Clemencic
- Fixed compilation warnings when using Boost 1.38 (Spirit changed includes).
- Replaced all the occurrences of endreq with endmsg. Removed endreq and added
a macro endreq for backward compatibility (enabled with -DGAUDI_V20_COMPAT).
! 2009-01-29 - Marco Clemencic, Sebastien Binet
- Symbol visibility (includes patch #2641)
Added the preprocessor macros GAUDI_API, GAUDI_EXPORT, GAUDI_IMPORT and
GAUDI_LOCAL to allow the decoration of classes and functions with visibility
attributes.
Decorated all the classes and functions that needs to be exported. This means
essentially:
- classes with at least one method in a .cpp file
- abstract/virtual classes (to have the virtual destructor only in one
place, to allow a correct dynamic_cast)
- non-inline functions (i.e. implemented in .cpp)
- all the classes that are part of an hierarchy that has to be navigated
with dynamic_cast
Usually it is not needed to decorate the fully-inlined classes/functions and
the templated ones (unless they are using globals or are not completely
implemented in the .h).
In some cases it is enough to decorate only the non-inline methods of a
class, mainly if the ratio non-inline/inline is small.
! 2009-01-29 - Marco Clemencic
- Restored the special implementation of queryInterface for PropertyMgr.
! 2009-01-23 - Marco Clemencic
- Fixes
- added Boost_linkopts_date_time to avoid a compilation problem on win32
with the LCGCMT 56 candidate (Boost 1.37)
- removed fake declaration of mpl_::na (Boost) used for GCCXML
- constantness problems in the new code discovered by gcc 4.3
- warning about non specified base class in a copy constructor
! 2009-01-22 - Marco Clemencic
- Introduced Boost Meta Programming Library (MPL) code to allow automatic
generation of queryInterface methods.
- modified IInterface to provide the needed basic typedefs
- added the class Gaudi::InterfaceId to collect the list of interfaces
implemented
- added the templated classes extend_interfaces#, implements#, extends#
- extend_interfaces#: used to write interfaces that inherits from other
interfaces (IInterface too)
- implements# : used to write concrete classes based on interfaces
only
- extends# : used to write concrete classes that extend concrete
classes with other interfaces (the constructor of the
base class must be called via the base_class typedef)
if these classes are used, the method queryInterface is generated
automatically.
- added the preprocessor macro DeclareInterfaceID to declare the interface id
for the interface; it must be put in the public section of the interface
declaration using the interface as first argument, then major and minor
versions:
class IMyFunctionality: virtual public extendInterfaces1<IInterface> {
public:
DeclareIterfaceID(IMyFunctionality,1,0);
};
- modified the interfaces to use the new functionalities
- NOTE: An updated interfaces does not require changes in the concrete
implementations if GAUDI_V20_COMPAT is enabled. On the other hand, an
adapted concrete class requires that all its interfaces are adapted.
- added the (automatically generated) method IInterface::getInterfaceNames
which returns a vector with the names of the interfaces implemented by the
component
- all the IID_* constants had to be removed to avoid conflicts with the IDs
generated with DeclareIterfaceID (note that they are not needed even in
v20-compatible code)
- Renamed INamedInterface to INamed. The old header and a typedef are provided
for backward compatibility (only if the macro GAUDI_V20_COMPAT is used).
- Removed the obsolete ITime.h, TimePoint.h and Algorithm.icc.
================ GaudiKernel v26r1 ====================================
! 2008-12-16 - Marco Clemencic
- Modified the Configurable.getValuedProperties logic to use all the explicitly
set properties and not only those different from the defaults.
! 2008-12-15 - Marco Clemencic
- Added the possibility of declaring "passive" dependencies between
ConfigurableUser instances (i.e. C.U.s from which the properties are taken).
The dependency is declared with the class data member
__queried_configurables__.
- Modified Python logging formatter of configurables to add the prefix ("#") to
each printed line.
! 2008-12-10 - Marcus Frank
- Patch #2699: First version of run records service
Generalize DataIncident to also pass arbitrary parameters.
! 2008-12-09 - Marco Clemencic
- Fixed minor problem in Configurable.__new__ for ConfigurableUser.
! 2008-12-07 - Marco Clemencic
- Fixed compilation warning with gcc 4.3.
! 2008-12-05 - Marco Clemencic
- Improved the logic of ConfigurableUser.propagateProperty (see the code for
details).
! 2008-12-01 - Marco Clemencic
- Fixed bug #44504. Inconsistent default for createIf flag for services.
Set the default of the flag to "true" in both IServiceLocator::service
signatures.
- Fixed bug #44279. Ambiguous signature in setProperty functions
Removed the redundant declarations.
- Fixed problems with ToolHandles.
! 2008-11-27 - Marco Clemencic
- Fixed compilation problems with ROOT 5.21/06.
================ GaudiKernel v26r0 ====================================
! 2008-11-13 - Pere Mato
- Added the functions pushCurrentDataObject and popCurrentDataObject, taken
from GaudiPoolDb.
! 2008-11-12 - Marco Clemencic
- Added the possibility of specifying post-config actions (functions to be
called after the call of all __apply_configuration__ methods) with the
functions appendPostConfigAction and removePostConfigAction from
GaudiKernel.Configurable (exposed via Gaudi.Configuration too).
! 2008-11-11 - Marco Clemencic
- Added a small script (make_patch.py) to simplify the generation of patches.
! 2008-11-10 - Marco Clemencic
- Minor change to ISvcManager to allow enable/disable of the initialization
loop check.
! 2008-11-07 - Marco Clemencic
- Added automatic registration of ConfigurableUser specializations to the
database of configurables.
! 2008-11-06 - Marco Clemencic
- Re-enabled the GaudiHandleProprtyProxy.
- Modified the ConfigurableUser base class so that the ConfigurableUser classes
declared as used are not active by default and they get activated the when
they get instantiated explicitly. The test has been updated too.
! 2008-11-01 - Marco Clemencic
- Fixed bug #43420. IPartPropSvc not accessible from Python
Added the missing interface to the dictionary.
! 2008-10-30 - Marco Clemencic
- Fixed a compilation problem on gcc4.3 with properties of type vector<pair>.
(order of specializations in GaudiKernel/ToStream.h)
- Replaced operator<<(MsgStream,vector) with the one in GaudiKernel/SerializeSTL.h
- Modified the base class ConfigurableUser to allow automatic apply. If the
ConfigurableUser derived class should touch other ConfigurableUser instances,
the classes must be added to the class data member __used_configurables__
(see tests/scripts/test_configurable_users.py in the package Gaudi).
- Added the function GaudiKernel.Configurable.applyConfigurableUsers() which
actually does the job of calling the apply method of all the ConfigurableUser
instances.
- Added the methods getProp and setProp to Configurable (LHCb contibution) and
propagateProperty and propagateProperties to ConfigurableUsers (adaptations from
LHCb contributions).
! 2008-10-28 - Marco Clemencic
- Fixed bug #43314. Memory leak in StatusCode
Added protection against self-assignment and delete of the owned
IssueSeverity instance.
! 2008-10-27 - Marco Clemencic
- Fixed warnings reported by gcc 4.3:
- type qualifiers ignored on function return type
- ../src/Lib/StatusCode.cpp:59: warning: the address of ‘addresses’ will
always evaluate as ‘true’
- ISO C++ forbids casting between pointer-to-function and pointer-to-object
(only active for gcc >= 4)
- Modified ConfigurableAlgTool.toStringProperty to use getFullName (to get rid
of the parent name in front of the instance name).
- Fixed a glitch in Configurable.__str__ when the property is a GaudiHandle.
- Do not use the full path to genconf.exe with install area.
- Fixed compilation errors and some warnings on gcc 4.3.
! 2008-10-23 - Marco Clemencic
- Reverted old implementation of the reinitialize method of Algorithm, Service
and AlgTool, i.e. do nothing. Fixes bug #39706.
- Fixed bug #42428. Properties of clones are not cloned.
- Modified the method clone to create copies of the properties if they are of
types: [ str, list, dict, tuple ].
- Fixed bug #43065. Error when unpickling GaudiHandles.
- Modified the constructor of GaudiHandle to accept a GaudiHandle (or any
instance with the method "toStringProperty") as argument.
! 2008-10-21 - Marco Clemencic
- Improvements in the logging of GaudiKernel.ProcessJobOptions. "Print OFF" and
"print ON" can be obtained using the GaudiKernel.ProcessJobOptions.PrintOn and
GaudiKernel.ProcessJobOptions.PrintOff functions.
! 2008-10-20 - Marco Clemencic
- Fixed the cast of errno from "int" to "unsigned long". (Fixes bug #25460)
! 2008-10-17 - Sebastien Binet
- Fixed bug #42005. System::typeinfoName is missing 'signed char'
- Added the missing case.
! 2008-10-17 - Marco Clemencic
- Patch #2303. Improve/extend IAlgorithm interface
Added the methods
- setExecuted
- isEnabled
- filterPassed
- setFilterPassed
- Fixed bug #39846. gaudirun.py creates invalid entries in flattened options
Modified filter "getNeededConfigurables" (GaudiKernel.Proxy.Configurable) to
exclude ConfigurableUser instances.
! 2008-10-15 - Marco Clemencic
- Excluded a couple of problematic methods from the dictionary (not preseent with
ROOT 5.18, but causing problems with ROOT 5.21).
- Fixed a problem with patch #2261. The usage of "id" for the aliases was
conflicting with its usage for the DataObject factories.
! 2008-10-10 - Vanya Belyaev
- Patch #2073: SharedObjectsContainer and 'blind' access to TYPE::Container &
TYPE::Selection
Added SharedObjectsContainer.
! 2008-10-09 - Pere Mato
- Patch #2261. Introducing name alias for Algorithms and Services
Added the new macros DECLARE_NAMED_ALGORITHM_FACTORY(type,name) to be used
instead of the current DECLARE_ALGORITHM_FACTORY(type) for algorithms with
templates. Similarly for Services.
! 2008-10-09 - Marco Clemencic
- Modified the return type of the "size" methods of ObjectContainerBase,
KeyedContainer, ObjectList and ObjectVector to be size_t (i.e. "unsigned long")
instead of long.
It avoids some compilation warnings.
! 2008-10-09 - Vanya Belyaev
- Patch #2058. Extensions for AIDA::TProfile1D
IHistogramSvc : few new methods are added for booking of 1D-profiles with
Y-range and options
! 2008-10-03 - Marco Clemencic
- Added ITHistSvc::getGraphs(), needed by patch #1963.
! 2008-10-01 - Marco Clemencic
- Minor change in System::backTrace interface.
! 2008-10-01 - Frank Winklmeier
- Patch #1797: Backtrace utility for System
Generalized version of the code taken from IssueLogger::getTraceBack()
(GaudiSvc).
- Patch #1796: Performance improvement for message reporting
! 2008-08-06 - Marco Clemencic
- Fixed bug #39809 (wrong configuration of public tools).
! 2008-08-05 - Marco Clemencic
- Fixed bug #39250. Cannot use configurable instances as values for properties
of type map<str,str>.
- Fixed bug #39117. gaudirun.py export to old options does not handle correctly
GaudiHandles.
Added the method getFullName.
- Fixed bug #39116. gaudirun.py export to old options prints '#' instead of '//'
The fix required a review of the way messages are printed across the whole
Configurables machinery. The Python standard logging module is now used and
the customization in GaudiKernel.Logging has been removed.
In printout in Python job option files should be done with the log instance
accessible from Gaudi.Configuration.
================ GaudiKernel v25r2 ====================================
! 2008-07-17 - Marco Clemencic
- Added the interface IEventTimeDecoder (from LHCb detector description), and
the Reflex dictionary for it.
! 2008-07-15 - Marco Clemencic
- Fixed bug #38868. MinimalEventLoopMgr does not restart algorithms
Implemented restart so that it calls the restart of all the algorithms.
Fixed the implementation of reinitialize too.
! 2008-07-15 - Gerhard Raven
- Fixed bug #38855. Inconsistent check in Service::sysRestart.
Fixed a the result of a bad cut & paste.
! 2008-07-15 - Vanya Belyaev
- Patch #1756. Decrease the probability for FPE in StatEntity::addFlag
Added a check in StatEntity::addFlag to avoid floating point exceptions
(underflows).
! 2008-07-11 - Charles Leggett
- requirements: tweak genconfig_cmd macro to work with GAUDI_ATLAS tag
! 2008-06-30 - Marco Clemencic
- Cleaned up Boost link options plus a fix for Boost 1.35.
================ GaudiKernel v25r1 ====================================
! 2008-06-25 - Marco Clemencic
- Fixed bug #38206: gaudirun.py fails to set a list property from a property
reference.
- Fixed bug #38194: gaudirun.py expands too many environment variables
Avoid to expand the environment variables in the strings.
================ GaudiKernel v25r0 ====================================
! 2008-06-12 - Marco Clemencic
- Modified the logic behind IFileAccess: the implementation must be able to
tell which protocols it can handle.
! 2008-06-10 - Charles Leggett, Marco Clemencic
- Fixed bug #37690. message svc release() in Auditor destructor
- Moved the call the message service release to the finalize method, where it
should be.
! 2008-06-10 - Marco Clemencic
- Added platform-independent sleep functions:
- Gaudi::Sleep(int)
- Gaudi::NanoSleep(long long)
! 2008-06-06 - Marco Clemencic
- Fixed Windows compilation warning (caused by patch #1756).
! 2008-06-05 - Marco Clemencic
- Fixed bug #36742. Cannot pickle options using "PropertyReference"
- Fixed a problem on osx105 (Undefined symbols: _environ).
- Fixed bug #37479. gaudirun.py fails parsing old option lines with comments
and quotes.
- Fixed bug #37488. importOptions does not expand environment variables.
- Fixed bug #35347. Cannot import 2 Python option files with the same name.
- Used execfile instead of __import__ for Python modules, following Paolo's
suggestion).
- Fixed bug #35913. Configurables type checking fails on Gaudi::Histo1DDef.
- Fixed avoiding that tuples and lists are treated the same way.
- Fixed bug #34769. Assigning a configurable to a list property does not fail.
- Values for properties expecting lists, tuples and dictionaries must match
the type (before it was possible to set a list from an iterable object).
- Fixed handling of files starting with '#!' in gaudirun.py
! 2008-06-04 - Marco Clemencic
- Fixed the last place where dylib was used on OSX (DsoUtils.h).
! 2008-06-04 - Charles Leggett
- Patch #1865. Better printouts for HistorySvc.
- Prints out more information about the various History objects to the output
file.
! 2008-06-02 - Marco Clemencic
- Task #5809. Extension to Gaudi Application state machine.
First implementation of the proposed extension.
A new interface (IStateful) has been added to provide a common way of
interacting with the state machine.
The interfaces IService, IAlgorithm and IAlgTool have been extended with the
methods from IStateful, and ISvcManager and IAlgManager have been extended to
support the new states.
The states and the transition have been defined in enums
(Gaud::StateMachine::State, Gaudi::StateMachine::Transition), and the
constraints on the possible changes are enforced by the function
Gaudi::StateMachine::ChangeState, which throws an exception if the transition
is not allowed.
Since algorithms and tools do not support all the states, the state
Gaudi::StateMachine::CONFIGURED is reached after the constructor. Services
are constructed in the state Gaudi::StateMachine::OFFLINE and become
Gaudi::StateMachine::CONFIGURED in the base class initialize method (as
defined in patch #1757).
The methods Algorithm::setInitialized and Algorithm::setFinalized has been
removed.
IAuditor has been extended to support auditing of the new transitions (start
and stop).
The Reflex dictionary has been updated to include the new classes/enums.
! 2008-05-29 - Charles Leggett
- Changed the name of the extension for libraries on OSX from ".dylib" to ".so".
! 2008-05-13 - Vanya Belyaev
- Patch #1756. Improvements for Chrono/ChronoStat&IChronoSvc
- Removal of many (ugly) obsolete lines, overall cleanup, improved flexible
print-out and other improvements.
- GaudiKernel/IChronoSvc.h
- The basic type from IChronoSvc now is "double" instead of "longlong".
- Change the return type from void to "(const)StatEntity*" for the methods
chronoStart/Stop.
- GaudiKernel/ChronoEntity.h, src/Lib/ChronoEntity.cpp
- The class is essentially rewritten (keeping the same public interface) in
terms of the generic counter StatEntity. And internally it is just a set
of three generic counters (for user/kernel&elapsed time correspondingly).
New features includes the better control over the printout through new
methods: outputUserTime, outputSystemTime, outputElapsedTime, outputTime.
- GaudiKernel/Chrono.h
- Make this tiny helper class simpler and more efficient:
- for the usage with IChronoSvc, avoid one virtual call
- allow the usage with ChronoEntity class
! 2008-05-09 - Marco Clemencic
- Added small interface (IFileAccess) for services/tools that allow read-only
file access agnostic of the storage backend (filesystem, web, CondDB, ...).
- Fixed a minor problem in ProcessJobOptions.py strip away spaces in component
and property names ("MyAlg . MyProp" -> "MyAlg.MyProp").
================ GaudiKernel v24r0 ====================================
! 2008-04-04 - Vanya BELYAEV
- Patch #1751. Fixed a typo in Stat::operator-=.
! 2008-04-04 - Marco Clemencic
- Bug #35201. Python options parser '//' interpreted as comment in strings.
Fixed by adding an extra check in ProcessJobOptions.py to allow '//' in
strings (like URLs). The fix is not perfect because requires that the string
is on a single line, but at least allows it.
- Fixed Bug #34680. Bad implementation of Service::messageSvc.
The obsolete methods now forward the call to the correct ones.
(anyway they should be removed at some point)
- Fixed a problem introduced with patch #1757.
Modified DataStreamTool to call sysInitialize instead of initialize for
conversion services.
! 2008-04-04 - Charles Leggett
- Patch #1757. detect creation/initialization loops for services.
Modified the way the state of the service is set:
- the base class initialize sets the state to CONFIGURED
- the service becomes INITIALIZED in the sysInitialized, after the
specialized service completed (successfully) the initialization.
! 2008-04-03 - Sebastien Binet / Martin Woudstra
- Bug #34752/Patch #1747. GaudiHandleArray.__getstate__ prevents pickling.
Fixed.
! 2008-04-03 - Vanya BELYAEV
- Patch #1751.
Change the signature of declareProperty/declareRemoteProperty methods
- for PropertyMgr form "void" to "Property*"
- for Algorithm/Service/AlgTool/Auditor base classes from StatusCode to
"Property*"
The previous return value was completely useless:
- either "void" or (always) StatusCode::SUCCESS
With the pointer to the actual property returned, one can easily use it, e.g.
to declare handlers as in:
//----------------------------------------------------------------------
class MyAlg : public Algorithm
{
public:
// constructor
MyAlg ( ... ): Algorithm ( ... )
, m_property( .... )
{
declareProperty ("Property" , m_property , "some documentation")
-> declareUpdateHandler ( &MyAlg::handler ) ;
}
private:
SOMETYPE m_property;
};
//----------------------------------------------------------------------
! 2008-04-03 - Marco Clemencic
- Patch #1725. New IAuditor interface.
- The Auditor member functions are now only 8, for all the combinations of:
* before or after
* standard event or custom event
* INamedInterface* or string
- All the after methods accept a StatusCode (if not specified, a SUCCESS with
the checked flag set is used).
- The obsolete member functions are kept for backward compatibility.
- The default implementations of "before" and "after" are using the obsolete
methods to make legacy Auditors to work.
- IAuditorSvc is now an extension of IAuditor.
- AuditorGuard has been adapted to the new interface and the audit with a
status code check is simpler.
- The standard event types defined in the enum IAuditor::StandardEventType
can be printed and converted to strings with operator<<.
! 2008-04-02 - Marco Clemencic
- Python job options:
- Removed the possibility of assigning a tool to an attribute of a
configurable if that attribute/property does not exists. It was intended to
allow simple declaration of private tools, but it is dangerous because it
avoids the checking of the spelling of properties.
- Modified Configurable.addTool() to accept a subclass of ConfigurableAlgTool
as first argument (as well as an instance) to avoid the instantiation of an
unneeded instance of the public tool configurable.
! 2008-03-11 - Hubert Degaudenzi
- added 2 patterns to create and use helper library for genconf. Some libraries
need to have other preloaded libraries in order to perform the genconf
procedure correctly. While this can be fixed on linux with the
LD_PRELOAD environment variable, this is not possible on windows. Thus
the genconf executable takes an extra argument "--load-library" to which
the full path of the helper library is passed.
! 2008-03-07 - Marco Clemencic
- Added a work around for ROOT bug #34282 in dict/dictionary.xml (excluded few
data members of Gaudi::Time).
- Fixed Bug #34046. False warning when mixing Python options and old options.
The check on the case of old options have been improved.
================ GaudiKernel v23r4 ====================================
! 2008-02-28 - Marco Clemencic
- Minor change to fix a regression. The line
#include"file.opts"
is understood by the JobOptsSvc, but it was not by the Python parser.
! 2008-02-27 - Charles Leggett
- Patch #1711. Get all instances of a tool type.
Function used in the Atlas event display.
! 2008-02-27 - Marco Clemencic
- Hack to avoid a conflict in the way Configurables are used in Athena and
Gaudi. In GaudiPython they are used in the AppMgr constructor, while in
Athena they are used in a different moment (and not even all of them are
needed).
The conflict is resolved by using a function to return the needed
configurables, implemented to return the keys of allConfigurables for Gaudi
and and empty list for Athena.
! 2008-02-27 - Wim Lavrijsen
- Patch #1710. Convenience method for removing entries from GaudiHandleArray
Add a simple convenience method for deleting tools from a ToolHandleArray by
name, rather than having to locate them first.
! 2008-02-21 - Marco Clemencic
- Moved the release of m_messageSvc and m_pAuditorSvc from Service::~Service to
Service::sysFinalize.
! 2008-02-21 - Yushu Yao
- Patch #1687. Adding getPropertyMgr() in AlgTool
This is needed to develop double use tools (tools that can be used in Gaudi
as well as in ROOT) in Athena.
! 2008-02-20 - Hubert Degaudenzi
- added static function to Message.{h,cpp} in order to be able to access
Message::DEFAULT_FORMAT and Message::DEFAULT_TIME_FORMAT.
! 2008-02-04 - Charles Leggett
- Patch #1668.
In Python 2.5, the method __str__ of ServiceHandles gets called causing some
problems. The reason has to be investigated, but the patch allows to work.
! 2008-02-04 - Yushu Yao
- Patch #1666: Add AlgTool::declareRemoteProperty
Added the member function declareRemoteProperty to AlgTool (present in
Algorithm and Service).
! 2008-02-04 - Marco Clemencic
- Fixed bug #33209: Deprecated raising a string with Python 2.5
Added a class for errors occurring during the parsing (ParserError).
! 2008-01-29 - Marco Clemencic
- Python options:
Modified added a flag to the Configurable base class to block assignments.
The flag is set in GaudiPython.AppMgr after the application manager has been
configured, to prevent that people try to manipulate the configuration when
it is too late.
The lock does not (and cannot) work for in-place changes (like += on a list).
! 2008-01-29 - Vanya BELYAEV
- Modified IInterface::hash32 to use and return "unsigned int" instead of
"unsigned long" for portability.
================ GaudiKernel v23r3 ====================================
! 2008-01-18 - Marco Clemencic
- Fixed bug #32549.
Changed the level of the message about the AbortEvent incident from ERROR to
DEBUG.
- Fixed a compilation warning in genconf.cpp with Boost 1.34.1 on Win32.
! 2008-01-14 - Vanya BELYAEV
- Patch #1581.
- GaudiKernel/Parsers.h, src/Lib/ParseMaps.cpp
add the parser functions for parsion of following types:
1) std::map<int,std::string>
2) std::map<unsigned int, std::string>
These types play important roles for LHCb-HLT and are requested
by Gerhard Raven
! 2008-01-11 - Gerhard Raven
- patch #1621 (bug #32466).
Add to IToolSvc/ToolSvc the possibility of using observers to monitor the
creation of and retrieval of tools.
! 2008-01-11 - Marco Clemencic
- Python options:
- Modified Configurable.addTool to set the property with the same name of the
tool (if it exists), so that it not hides the tool reference.
- Modified PropertyProxy.__get__ to allow direct access to the default for
dictionaries as well as for lists.
- Added the helper class Configurable.PropertyReference to allow the late
binding of properties as it was possible in old options (mainly needed for
backward compatibility).
The option:
MyAlg.MyProp = @AnotherAlg.AProp;
translates to:
MyAlg().MyProp = Configurable.PropertyReference("AnotherAlg.AProp")
- Modified the parser of old job options to correctly translate references.
- Modified ConfigurableAlgTool.getFullName to return only the instance name
(instead of the fully qualified name).
- Allow the wrong case for properties in old option files, but issue warnings.
- Modified the default logger to print "GaudiKernel" instead of "Athena" and
prepend a '#' to the message to allow evaluation of the standard output in
Python (needed in Ganga).
! 2008-01-10 - Marco Clemencic
- Fixed a problem in ProcessJobOptions.py occurring when option values have '\'
inside (filenames on Windows).
! 2008-01-09 - Marco Clemencic
- Python options:
- Take the values for VERBOSE, DEBUG, INFO, WARNING, ERROR, FATAL always from
GaudiKernel.Constants.
- Made "Configurable" equivalent to "str", so that it is possible to set a
string property from a configurable instance. It allows something like:
mySvc = AService("theService",...)
myAlg = AnAlgorithm("theAlgorithm")
myAlg.ServiceToUse = mySvc
! 2008-01-08 - Marco Clemencic
- Fixed a problem in ProcessJoboptions.py: allow have white spaces before the
'#' sign of directives.
! 2007-12-20 - Marco Clemencic
- Improved the message of DataSvc when re-throwing a std::exception. Now the
message contains the type of the exception.
- Added a constructor for GaudiException accepting a std::exception. The type
of the passed exception and its message are appended to the message of the
GaudiException.
- Fixed a problem in ProcessJoboptions.py when DOS new-lines were found on
Unix.
! 2007-12-19 - Marco Clemencic
- Fixed a couple of typos in Map.h (preventing the generation of dictionary).
- Check if a value is in the list before trying to delete it when interpreting
"-=" in old job options.
- Restored the original logic for parsing list in old job options (replace all
"{}" with "[]", unless there is a ':').
! 2007-12-12 - Marco Clemencic
- patch #1585.
- Added the templated function pp_cast<DEST>(SRC**) to replace the common casts
(void**)&pointer
and
(IInterface *&)m_mySvc
to avoid the warning
"dereferencing type-punned pointer will break strict-aliasing rules"
- Fixed warnings about breaking of strict-aliasing rules (gcc 4.1 optimized).
! 2007-12-03 - Markus Frank & Marco Clemencic
- Implemented the Win32 version of the code in DsoUtils.h, with some
simplification.
! 2007-11-30 - Marco Clemencic
- Fixed DsoUtils.h to work on OSX too.
- Fix for bug #31677.
Move GaudiHandles.py from GaudiPython to GaudiKernel.
! 2007-11-28 - Sebastien Binet
- patch #1560.
Minor change to avoid possible injection of GaudiKernel.Configurable through
importOptions.
! 2007-11-26 - Marco Clemencic
- Fixed a problem with the dictionary and ROOT >= 5.16.
! 2007-11-21 - Marco Clemencic
- Fixed few compilation warnings on osx in the dictionary.
! 2007-11-20 - Marco Clemencic
- Fixed few compilation warnings on win32 in the dictionary.
================ GaudiKernel v23r2 ====================================
! 2007-11-16 - Marco Clemencic
- Added a new incident type (AbortEvent) that force the (Minimal)EventLoopMgr
to skips all the top algorithms still to be executed for the current event.
It can be used when a reconstruction step fails so it does not make sense to
process the event, but we do not want to stop the application.
- Fixed a bug in the old job option interpretation if mixed with python
options.
The sequence:
MessageSvc.OutputLevel = 1
#include "SetMsgSvcOutLvlTo2.py"
MessageSvc.OutputLevel = 1
was not correctly setting the output level (if SetMsgSvcOutLvlTo2.py sets the
output level).
! 2007-11-15 - Vanya Belyaev
- patch #1523.
Add possibility to have properties of the types std::map<int,int> and
std::vector<std::pair<int,int> > (the second case is perfectly suited
for Helder Lopez' request of the list of event/run numbers)
modified files:
- GaudiKernel/Parsers.h
add two functions "parse" for parsing of new types
- src/Lib/Parse*.cpp
add the implementation of parsing functions
! 2007-11-14 - Marco Clemencic
- Added the function GaudiKernel.Configurable.purge to clean up all the
configurables and the list of already imported files from the memory.
After a call to "purge" one is able to restart the configuration from scratch
without having to leave the python session.
! 2007-11-13 - Marco Clemencic
- Instead of generating *Conf.py files trying to import AthenaCommon and fail
back on GaudiKernel, use the module GaudiKernel.Proxy, which internally does
the same kind of trick but only once.
! 2007-11-13 - Sebastien Binet
- patch #1520 (bug #31097)
Removed a duplicated data member in ServiceHandle (same information already
available in the base class).
- patch #1158
Modified genconf.exe to generate modules (*_confDb.py) with a smaller memory
footprint. The code to fill the DB is encapsulated in a function that is then
deleted after being called.
! 2007-11-12 - Marco Clemencic
- Moved the *.qmt files to the implicit suite (directory) "gaudikernel.qms".
! 2007-11-08 - Marco Clemencic
- task #5807.
Added the header GaudiKernel/SerializeSTL.h to provide implementations of
operator<< for some common STL containers and GaudiUtils::*Map.
The implementations live in the namespace GaudiUtils. To use them, one have
to add "using namespace GaudiUtils" (in the relevant scope).
Tests have been added too.
! 2007-11-02 - Marco Clemencic
- Added a temporary work-around for OSX in ProcessDescriptor.cpp.
To get timing information, it tries to open /proc/$PID/stats, which does not
exist in OSX. The alternative is to use some other mechanism, but the one
implemented in ProcessDescriptor seems to cause a segmentation fault.
(to be investigated)
! 2007-10-31 - Marco Clemencic
- Rewritten ProcessJobOptions.py. Major changes:
- honor the #pragma print on/off in old options
- print a warning if a file is included twice (the second time it is ignored)
- allow inclusion of ".py" and ".pkl" files from ".opts" files (this is the
main reason fror the rewrite)
- moved importOptions from Gaudi.Configaration to ProcessJobOptions to allow
better recursion
! 2007-10-31 - Marco Clemencic
- Minor change to the IUpdateManagerSvc interface (added the function :purge")
! 2007-10-29 - Pere Mato
- KeyedObjectManager.cpp: changed order of specialization and instantiation
to please gcc 4.0
! 2007-10-22 - Marco Clemencic
- Use the pattern QMTest and add a .qmt file (QMTest test description) to run
the DirSearchPath test.
- Modified DirSearchPath_test to work on Windows too.
! 2007-10-16 - Paolo Calafiura
- patch #1416. new DirSearchPath method and test
- Added DirSearchPath::find_all
- Moved the test from GaudiSvc to GaudiKernel
================ GaudiKernel v23r1 ====================================
! 2007-10-10 - Pere Mato
- Corrected bug of ProcessJobOptions.py detected by Marco C. when using filenames with
environments.
! 2007-10-09 - Marco Clemencic
- Moved DirSearchPath from GaudiSvc/src/JobOptionsSvc to GaudiKernel
(requested by Paolo Calafiura).
Note: the 2 tests using DirSearchpath are still in GaudiSvc.
! 2007-10-02 - Pere Mato
- Patch #1400.
Support for pickle files in python configurations.
Fixed various bugs in parsing old joboptions files
! 2007-09-28 - Vanya Belyaev
- Patch #1345.
minor modifications to improve Tuples::TupleObj (GaudiAlg package)
- GaudiKernel/NTuple.h
1) substitute the explicit specialization for NTuple::Range with
the regular calls of std::numeric_limits<T>::min()/max()
2) disable "#ifndef ALLOW_ALL_TYPES"
! 2007-09-26 - Vanya Belyaev
- patch #1375. Allow configuration of Histogram1D from job options.
- New class Gaudi::Histo1DDef for histogram description/definition.
- Implementation of parsing for new histogram properties.
(Sascha Mazurov)
! 2007-09-25 - Vanya Belyaev
- Patch #1357.
Minor improvements to Gaudi::Utils::setProperty():
- allow to set the documentation of a property
- allow to set a property from a PopertyType
! 2007-09-24 - Sebastien Binet (& Marco Clemencic)
- patch #1247. (partial)
- avoid duplication of symbols in files generated by genconf.
(Warning: Win32 implementation missing)
Note: the patch was providing a patched version of genmap which cannot be
included in Gaudi, but should be proposed to ROOT.
! 2007-09-24 - Hubert Degaudenzi
- changed back Configurables.py into Configurable.py (it was
a mistake).
! 2007-09-24 - Marco Clemencic
- modified the way to pass fallback module to genconf: comma-separated list
instead of a dedicated option.
! 2007-09-24 - Markus Frank
- fixed bug #29806. Wrong call to setDataProvider.
! 2007-09-21 - Hubert Degaudenzi & Marco Clemencic
- factored out the main application part to the Gaudi package.
- added the GaudiKernel prefix when importing python modules in order
to avoid local imports.
- changed the name of Configurable.py into Configurables.py for
compatibility with the Athena module.
- added an option to genconf that adds a fallback module for the
location of Configurables and ConfigurableDb
- modified the genconfig CMT pattern for the previous change to have
AthenaCommon by default and if it doesn't exist fall back to
GaudiKernel. This is a temporary fix until both approaches are merged.
! 2007-08-31 - Hubert Degaudenzi & Paolo Calafiura
- Patch #1260.moved the MinimalEventLoopMgr from GaudiSvc to GaudiKernel. The factory
for this service is still in GaudiSvc
! 2007-08-06 - Vanya Belyaev
- patch #1231.
- Splitted IChronoStatSvc.h into IChronoSvc and IStatSvc.
- Remove ICounterSvc::CountObject and replaced it with Stat.
- Added few free functions to format StatEntity objects as table rows.
! 2007-07-27 - Marco Clemencic
- Added the file cbrt.h, which provides an implementation of cbrt (cubic
root) to all the platforms (it is a built-in function of gcc).
! 2007-07-24 - Vanya Belyaev
- patch #1246.
Introduced 2 new classes:
* Gaudi::Guards::ExceptionGuard
executes a functor in a "standard" try-catch block.
* Gaudi::Guards::AuditorGuard
executes a function of an object when the instance is created and
a second one when destroied, allowing automatic "clean-up" (in case
of early exit).
See GaudiKernel/Gaurds.h (doxygen) for more details.
! 2007-07-24 - Charles Leggett
- patch #1253.
This patch fixes Algorithm.cpp, AlgTool.cpp and Service.cpp such that
there is a consistent use of the auditorSvc-after[whatever] in the catch
loops when an exception is thrown. It also gets rid of some needlessly
verbose comments.
! 2007-07-24 - Pere Mato
- patch #1250.
Removed the default constructor of Service because it is causing a memory
leak in Reflex.
! 2007-07-24 - Vanya Belyaev
- patch #1227.
Added the functions "Gaudi::Utils::setProperty(IInterface*,...)", simpler
counterparts of "Gaudi::Utils::setProperty(IProperty*,...)".
! 2007-07-23 - Vanya Belyaev
- patch #1226.
* SmartIFBase<TYPE>:
+ explicitely disable copy constructor and assignement
+ add "checking operator", operator!()
* SmartIF<TYPE> and SmartIF<IInterface>
+ add "const" into copy constructor
+ add the constructor from underlying pointer
+ add "const" into standard assignement
+ add "const" into template assignemet
+ remove line duplicates between standard assignement and assignement
from the regular pointer
+ fix typo in return type of assignement from the base
+ add "checking operator", operator!()
! 2007-07-17 - Sebastien Binet
- patch #1182.
Improved precision for timing measurements in ProcessDescriptor
(on linux). The patch allow to use the function getrusage when
possible to get a us precision instead of ms. When getrusage cannot
be used, the timing is measured in the old way.
! 2007-07-16 - Marco Clemencic
- changed the syntax for specialization of templated function in namespace
for gcc 4.1 future use
! 2007-07-16 - Hubert Degaudenzi
- added the possibility to use the universal time for the messages.
there is a new "%u" format for this. It replaces the usual "%t" in
the MessageSvc.Format.
! 2007-06-18 - Vanya Belyaev
- patch #1178.
* The patch substitute the internal counters, used for
(I)CounterSvc by generic counters of type StatEntity.
* This allow to reuse the useful functionality of StatEntity class.
* In addition it will allow an easy publishing and integration of
counters with monitoring tasks.
* Also it adds more functionality for grouping of counters, in
particular the extraction of the whole group of counters
(required by Matt Needham)
* The printout of counters is now coherent with printout of
generic counters through GuadiCommon<T>.
================ GaudiKernel v23r0 ====================================
! 2007-06-11 - Sebastien Binet
- Fix to bug #26919. Explicit implementation of the copy constructor
and assignment operator for the PropertyWithValue class.
! 2007-05-24 - Pere Mato
- Added specialization of ROOT::Reflex::TypeDistiller for strings in
AudFactory.h (was missing).
! 2007-05-24 - Marco Clemencic
- Extended the IIncidentSvc interface to make it possible to register
a listener for only one occurrence of the requested event
(see bug #25552).
! 2007-05-24 - Vanya Belyaev
- patch #1171. The enhancement of existing Algorithm Context Service
is the primary goal of the proposed patch. The existing
AlgContextSvc is not safe with respect to e.g. Data-On-Demand
service or to operations with subalgorithms. The patched service
essentially implements the queue of executing algorithms, thus the
problems are eliminiated. In addition the enriched interface
provides the access to the whole queue of executing algorithms.
! 2007-05-24 - Vanya Belyaev
- patch #1163. Patch to allow the following syntax:
setProperty ( "OutputLevel" , "4" ) ;
setProperty ( "OutputLevel" , 4 ) ; //new
setProperty ( "Enable" , "False" ) ;
setProperty ( "Enable" , false ) ; //new
setProperty ( "ErrorMax" , "10" ) ;
setProperty ( "ErrorMax" , 10 ) ; //new
std::vector<double> data = ... ; //new
setProperty( "Data" , data ) ; //new
std::map<std::string,double> cuts = ... ; //new
setProperty( "Cuts" , cuts ) ; //new
std::map<std::string,std::string> dict = ... ; //new
setProperty( "Dictionary" , dict ) ; //new
The setting of properties through strings is still possible.
! 2007-05-23 - Marco Clemencic
- patch #1168. Added specialization for void* to GaudiUtils::Hash.
! 2007-05-23 - Charles Leggett
- patch #1176. Added few missing functions in ITHistSvc
(already present in THistSvc)
! 2007-05-23 - Vanya Belyaev
- patch #1161. Improvements and clean-up in StatEntity:
- Removed "weight"-related functions and methods (unused)
- Added binomial error calculation for efficiency-like counters
- Improved print-out format
- Added methods to make StatEntity mode DIM friendly
- Some clean up in comments
! 2007-05-23 - Marco Clemencic
- patch #1160. Changed the returned value of
- Algorithm::setExecuted()
- Algorithm::resetExecuted()
- Algorithm::setFilterPassed()
from StatusCode to void.
! 2007-05-22 - Marco Clemencic
- patch #1166. Splitted ParseVectors.cpp in 6 pieces:
* ParseVectorsBool.cpp
* ParseVectorsChar.cpp
* ParseVectorsInteger.cpp
* ParseVectorsReal.cpp
* ParseVectorsString.cpp
* ParseVectorsVector.cpp
to reduce memory usage at compile time (with a modest increase of
disk space and compilation time).
! 2007-05-15 - Sebastien Binet
- patch #1157. Here is a simple patch to harmonize the interaction
with the underlying m_outputLevel data member of each of these main
Gaudi components. It makes sure that the 3 of them have:
int outputLevel () const;
void initOutputLevel(Property&); //update handler
also added this method to MsgStream:
void setMsgSvc( IMessageSvc* svc ) {
m_service = svc;
}
! 2007-05-15 - Chris Jones
- patch #1136: Updates to Algorithm and AlgTool required for
changes in GaudiAlg for automatic registration of data to the
monitoring service
+ Addition of the same declareInfo(...) methods in AlgTool as in
Algorithm
+ Replace hardcoded monitor service name with new job option
+ New method to provide 'easy' direct access to monitor service
via pointer
! 2007-05-15 - Sebastien Binet
- patch #1129: Add the method outputLevel() to Auditor.
! 2007-05-14 - Marco Clemencic
- fix to bug #25852 bis
Fixed compilation problem on windows by adding the definitions for
the missing functions localtime_r and gmtime_r
(header GaudiKernel/time_r.h).
Removed also a couple of compilation warnings.
! 2007-05-10 - Ivan Belyaev
Patch #1126:
- GaudiKernel/StatEntity.h, src/Lib/StatEntity.cpp
1) Add the assignment operator from the scalar value according to
the request by Ulrich Kerzel (LHCb/RICH)
2) Add two new methods "efficiency" and "efficiencyErr" for
evaluation of binomial estimate of the efficiency, associated
with the counter. If the counter could be interpreted as
efficiency, these methods produce right results. Method
"efficiency" returns either "flagMean" or -1, if the
interpretation of counter as efficiency is not possible. In a
similar way "efficiencyErr" returns the binomial estimate of the
uncertainty or -1, if the interpretation of counter as
efficiency is not possible. Note that there could be sizable
difference between RMS estimate "flagMeanRMS" and the binomial
estimate "efficiencyErr", however for large statistics and for
non-extremal (close to ~0 or, especially ~100%) efficiencies,
these estimates should be very similar.
- GaudiKernel/ToStream.h
1) Add the printout for std::list
2) Add the template parameters for std::vector, std::set, std:map,
GaudiUtils::Map, GaudiUtils::VectorMap, GaudiUtils::HashMap. It
allows to use all these function for containers with non-default
optional template arguments, e.g. allocators, comparison
criteria, hash functions or underlying containers,
3) Remove the unused local variable "delim".
- GaudiKernel/VectorMap.h, GaudiKernel/Map.h. Improve doxygen
comments according to the request by Marco Cattaneo)
! 2007-05-10 - Hubert Degaudenzi
- fixed warning for gcc 4 (on MacOSX) about non-existing virtual
destructors in NTuple.h for NTuple::Array, NTuple::Matrix,
NTuple::Item etc.
! 2007-05-09 - Sebastien Binet
- patch #1141. Fix return statement of GaudiHandleArray::operator=.
! 2007-05-02 - Hubert Degaudenzi
- fix to bug #25460. The return value of getLastError is now an
unsigned long. A static_cast was added.
! 2007-04-30 - Andy Salnikov
- fix to bug #25852. The patch is quite small and touches only two
classes - Message and MessageSvc. Messages now have one more format
flag '%t' which is replaced with the formatted timestamp on
output. Default format string has not changed so default output
will look identical to what it was before. The format of the
timestamp can be changed through the additional format string
similarly to the message format string. Time format can contain
anything that is accepted by strftime plus additional '%f' code for
milliseconds.
! 2007-04-27 - Sebastien Binet
- patch #25888. Fixed uninitialized variable in Algorithm.cpp.
! 2007-04-09 - Marco Clemencic
- patch #1125. Fixed INamedInterface in order to provide the right
IInterfaceID. An empty virtual destructor has been added.
! 2007-04-05 - Martin Woudstra
- Patch #1103. The attached 2 patches (one for GaudiPython and one
for GaudiKernel) contain the changes needed to support
ToolHandleArray's (a 'vector' of ToolHandles). This is a new
feature, and is already in use in ATLAS. In addition to the
ToolHandleArray and its associated base classes, there is the
GaudiHandleArrayProperty, and an update to genconf to support it
! 2007-03-25 - Chris Jones
- Patch #1099. Add Specialization stream operator for
std::vector<T,A> to MsgStream.h Allows print out of vector created
with custom allocators e.g. std::vector< RichSmartID,
boost::pool_allocator< RichSmartID > >
! 2007-04-04 - Chris Jones
- Patch #1092. There is a bug in the current implementation of the
format(..) method in MsgStream.(cpp,h) which means if a user uses
the format method twice in one message request, wrong information
is printed. The attached patch fixes this by returning instead a
std::string. However, if somewere a user is explicitly using the
returned char * pointer (They really shouldn't be...) a small
change to their code would be required. i.e.
char * c = format("XXX,x);
to
std::string s = format("XXX,x);
c = s.c_str();
================ GaudiKernel v22r2 ====================================
! 2007-03-14 - Sebastien Binet
- Patch #1081 (fix to bug #24704): fix the crash that happens when
the destinatin file of genconf has a "+" in its path.
! 2007-03-13 - Sebastien Binet
Patch #1080: fixes to GaudiKernel/src/Util/genconf.cpp:
- fix handling of templated components
- fix handling of (default value of) BooleanProperties
- fix handling of NaN DoubleProperties (follows the good old Garbage
In, Garbage Out pattern, even though a warning is issued during
genconf processing...)
! 2007-03-12 - Vanya Belyaev
- Patch #1073. Simple modification of IExceptionSvc interface (and
the implementation ExceptionSvc) to avoid the explicit appearence
of class Algorithm in the interface. The interface is modified to
substitute Algorithms with INamedInterface. It allows to use the
service in much wider context, in particular with tools, services
and auditors.
! 2007-03-9 - Sebastien Binet
- Patch #1058 (partially). Makes sure a DoubleProperty is understood
as a double on the python side (and not converted into an int as it
was the cast)
- added merge_genconfDb.py scripts to merge configurables.
! 2007-03-9 - Hubert Degaudenzi
- Clean up genconf pattern left over.
! 2007-03-08 - Martin Woudstra
- patch #1070. The python configurables generated with the current
genconf.cpp return the python (mangled) class name from the
function getType(). This should be the C++ class name, otherwise
the ToolSvc will not find tools from classes in namespaces and/or
templated classes. This is critical as many classes in ATLAS as of
these categories and all those are broken now.
- patch #1071. The GaudiHandle version used in ATLAS has since some
time an 'empty()' member function to indicate that no component is
supposed to be retrieved nor used. For some reason this member
function did not make it into Gaudi 19, so now the ATLAS code is
broken. patch adds this member function to the GaudiHandleBase
class, and allows the users to specify an 'empty' handle in the
constructor (i.e. "" is kept is-as and does not trigger the setting
to the default type).
! 2007-02-26 - Sebastien Binet
patch #1041
- removes some warnings wrt hidden methods
! 2007-02-26 - Paolo Calafiura
- patch #1049: do a full include of SmartDataPtr.h instead of a
forward declaration.
================ GaudiKernel v22r1 ====================================
! 2007-02-23 - Hubert Degaudenzi
- moved the factory declaration of DataStreamTool to GaudiSvc
! 2007-02-16 - Hubert Degaudenzi
- fixed genconf for the Auditors.
! 2007-02-16 Charles Leggett
- patch #1019: refactor of the library into a component library.
! 2007-02-16 - Sebastien Binet
Patch #1033
- patch to genconf which prevents it to segfault when no property
could be dyn-casted.
! 2007-02-15 - Marco Clemencic
Patch 1032:
- Added a helper class to allow the usage of IUpdateManagerSvc from
python. The helper class is IUpdateManagerSvc::PythonHelper,
declared as friend of IUpdateManagerSvc. The implementation
consists of 2 static functions implemented in dictionary.h.
! 2007-02-14 - Pere Mato
- Fixed bug #23811: patch #1001 is breaking Configurables generation
! 2007-02-14 - Vanya BELYAEV
Patch #1001
- a) couple of fixes, which allows to retrieve the private tools not
only from Algorithm, Services and AlgTools, but also from
Auditors.
b) Update the queryInteface method for AlgTool,Algorithm,Auditor
and Servicebase classes to allow query for INamedInterface, in
addition "C-cast" is substituted with "static_cast"
The modified files:
src/Lib/AlgTool.cpp
src/Lib/Algorithm.cpp
src/Lib/Auditor.cpp
src/Lib/Service.cpp
! 2007-02-13 - Pere Mato
- Reverted change in Booststrap.cpp. This fixes "bug #23684: BootSvcLocator is breaking athena.py"
- genconf.cpp: applied "patch #1016: configurable genconf"
fixed "bug #23649: ICounterSvc inheritance tree and Reflex::PluginSvc"
! 2007-02-08 - Pere Mato (David Quarrie)
- Bootstrap.cpp:
Introduced a dual-stage boostrap mechanism to ensure an orderly startup
of the ApplicationMgr. If the Gaudi::svcLocator() function is called before the singleton
ApplicationMgr instance exists, a BootSvcLocator singleton instance is
created. This responds to any subsequent requests for services by
returning StatusCode::FAILURE, unless the ApplicationMgr singleton
instance has been created in the interim. In this case, the BootSvcLocator
forwards the request to the ApplicationMgr instance. The motiviation for
this is to handle static object instances where the constructor attempts
to locate services and would otherwise instantiate the ApplicationMgr
instance in an unorderly manner. This logic requires that the
ApplicationMgr instance is created explicitly.
! 2007-02-07 - Martin Woudstra
- fix to patch #1009. Avoid infinite recursion.
! 2007-02-05 - Pere mato (Sebastien Binet)
- Applied patch #1009: patches to fix XyzHandle parsing from python
jobOptions
! 2007-02-05 - Paolo Calafiura
Patch #1007
- turned the templated member functions operator << (T&) and its
partial spec operator << (vector<T>&) into open functions. This
appears to remove ambiguities a user defined MsgStream operator <<
template (typically in a data object header file). The compiler
sees the user defined template as a better specialization and
matches that with no ambiguity.
- removed the MsgStream& operator(std::ostream&) recently proposed as
a patch since it does not serve any useful purpose
! 2007-01-31 - Pere Mato
- Applied patch #1000: improvement in ConfigurableDb output for genconf
! 2007-01-30 - Pere Mato (
- Applied [partially] patch #997: genconf.cpp patch
- It adds to genconf.cpp:
- a "double loading" libraries to shield against dual_use
libraries (which could bring lots of external
libraries into the generated Configurable)
- the generation of an ASCII file (a-la-rootmap) to describe
Configurables for the benefit of the (athena)
PropertyProxy.py.
! 2007-01-27 - Pere Mato (Paolo Calafiura)
- Variation of the templated streamer that should provide the same
functionality and address the ambiguous overload problems ATLAS saw
with the template
! 2007-01-18 - Charles Leggett
- patch #977 on MsgStream.
! 2007-01-18 - Charles Leggett
patch #972.
- add messageCount to IMessageSvc
- extend Auditor::(sys)afterExecute to pass a const StatusCode&,
which is the return code of the algorithm
- new auditor to monitor algorithms, issue message if algorithm
writes out an ERROR or FATAL, but returns SUCCESS
! 2007-01-17 - Marco Cattaneo
- removed GCCXML_CXXFLAGS definition following fix in reflex.
! 2007-01-17 - Charles Leggett
- patch #971: added ServiceHandle and GaudiHandle.
================ GaudiKernel v22r0 ====================================
! 2007-01-23 - Pere Mato
- AlgFactory.h, SvcFactory.h, ToolFactory.h: added template specialization for Reflex::TypeDistiller to
overcome a problem with Reflex and the name given to std::string. The change can be removed when Reflex
will be modified.
- MsgStream.h: Corrected compilation error.
! 2007-01-12 - Marco Clemencic
- fix to patch #954. Modification of the interface of IDataStreamTool
to avoid explicit reference to std::vector.
- added the method addStream, in parallel to addStreams.
! 2007-01-12 - Hubert Degaudenzi
- bug #22799. changed the return value of chronoStart, chronoStop,
chronoPrint, stat and statPrint method of the IChronoStatSvc from
StatusCode to void.
! 2007-01-10 - Eric van Herwijnen
- Patch #943 & #946. Update of the IMonitorSvc interface. To be
compatible with the DIM format. Added declareInfo for the special
case of general structure monitoring to Algorithm.h.
! 2006-12-22 - Andres Osorio & Marco Clemencic
Patch #954
- Moved EventSelectorDataStream from GaudiSvc to GaudiKernel
- Added IDataStreamTool and the basic implementation DataStreamTool
(to be used by EventSelector to loop over the files)
- fixed a few StatusCode checks.
! 2006-12-21 - Pere Mato
- ConversionSvc.cpp(.h): added method
ConversionSvc::loadConverter(DataObject*) to load anything
necessary (typically a dictionary) for finding/initializing a
converter. Dummy at the base class level.
! 2006-12-18 - Pere Mato
- ServiceLocatorHelper.cpp: added the code that declares the service
pair type/name. It was removed by mistake ( I guess) after the
merge with all the changes from ATLAS.
! 2006-12-15 - Pere Mato
- VectorMap.h: removed protected find() method to avoid compilation error in
Event/HtlEvent package
! 2006-12-14 - Hubert Degaudenzi
- removed duplicated dictionary entry for InterfaceID (it is located in the
GaudiPython dictionary)
! 2006-12-14 - Charles Leggett & Hubert Degaudenzi
- fixed the SimpleProperty constructors for ATLAS usage (with Ivan
Belyaev's help).
- a few StatusCode checks fixing.
- removed unused static function PR_indent in PathResolver.cpp
! 2006-12-10 - Charles Leggett
- requirements: added "-pedantic" to Linux compilation in private
- extra ";": AllocatorPool.h/.cpp, ChronoEntit, Debugger.h, Environment.h
KeyedObject.cpp, KeyedObjectManager.h/.cpp, KeyedTraits.h
Memory.h, NTupleImplementation, NTupleItems.h, ProcessDescriptor
Property.cpp, PropertyMgr.cpp, Selector.h, Stat.cpp,
StatEntity.cpp, TimePoint.h
- auditors: Algorithm.h/cpp, AlgTool.h, Auditor.h/cpp, IAuditorSvc,
Service.h/cpp
- doc string for props: Algorithm.h, AlgTool.h, Auditor.h/cpp, Property.h/.cpp
- service creation on demand: ServiceLocatorHelper.cpp, ISvcLocator
- setPriority of services: ISvcManager
- fire ModuleIncident when module loaded: IClassManager,
ModuleIncident.h (new)
- IIncidentSvc.h: rethrow incident if requested with extra param to
addListener()
- ToolHandle: GaudiHandle, ToolHandle, AlgTool::refCount, dictionary.h/.xml
! 2006-12-08 - Pere Mato
- added Transform3DTypes.h, Transform4DTypes.h, Vector3DTypes.h,
Vector4DTypes.h, Plane3DTypes.h, Point3DTypes.h, Point4DTypes.h,
SymmetricMatrixTypes.h, Coord3DTypes.h, GenericMatrixTypes.h,
GenericVectorTypes.h. These are typdefs to ROOT types.
! 2006-11-30 - Pere Mato
Adpated package to the new PluginSvc
- Removed protected from constructor/destructors and fiendship of
Factory class
- Removed files: FactoryTable.h, IAlgFactory.h, IAuditorFactory.h,
ICnvFactory.h, IObjManager.h, IObjectFactory.h, IRndmGenFactory.h,
ISvcFactory.h, IToolFactory.h, FactoryTable.h, ICnvManager.h
- Deep changes in the XXXFactory.h files to take into account the
new plugin service
! 2006-11-29 - Hubert Degaudenzi
- this is the beginning of the release notes for the merge with the
v20r13 release (v20r9b branch).
! 2006-11-26 - Vanya BELYAEV - patch #922
- GaudiKernel/VectorMap.h
1) On the request form ATLAS (Savannah reports #21395 and #21394)
add the method "update" to class GaudiUtils::VectorMap.
NOTE: It is nor STL-compliant!
It behaves like "insert", but it OVERRIDES the mapped value
2) Also "const-look-up" is added through the methods
"operator()" and "operator[]"
Again it is nto STL-complient signature:
the methdod are "const" , and there are no
"non-const" analogues
* For typical usage of this class in LHCb context
* as "ExtraInfo" field I would like to recommend
* to AVOID this method
3) Add also the checked access in STL-spirit:
GaudiUtils::VectorMap::at
throw std::out_of_range exception for non-existing keys
- GaudiKernel/ToStream.h
add the partial specialization for printout of following classes:
1) GaudiUtils::Map
2) GaudiUtils::HashMap
3) GaudiUtils::VectorMap
The printout done in a style of "Python-dictionary", similar to
std::map
Also print out for std::set is added
- src/Lib/VectorMap.cpp
new file fith implementtation of action for nonexisting key
! 2006-11-22 - Hubert Degaudenzi
- added environment variable GCCXML_CXXFLAGS=" -m32" for 32 bits
compilation on amd64 machines (with the slc4-ia32 tag)
- added environment variable GAUDIEXE which points to the Gaudi
executable.
! 2006-11-02 - Hubert Degaudenzi
- modified rootmapdump.py in order to match any file *beginning* with
"rootmap" and not only the "rootmap" filename. This is the same
matching behavior as the one in ROOT itself.
! 2006-10-27 - Ivan Belyaev
- patch #870. Added operator << for StatusCode.
! 2006-10-26 - Marco Clemencic
- Patch #736. Improvemts to TransientFastContainer. Now it allows to
use for new objects the default constructor, the copy constructor
and a user specified constructor (via placement new).
! 2006-10-12 - Marco Clemencic
- Patch #879. Fixed a bug in DataSvc. When retrieving an object from
the transient store, it fails if the root node has not yet been
loaded. I added a check on the root node for those cases and I
explicitely load it if needed.
! 2006-10-06 - Marco Clemencic
- Patch #863. Add the function System::setEnv to set an environment
variable. Setting the variable to "" results in removing it from
the environment (same behavior on windows and linux). The parameter
overwrite define the behavior in the case the variable is alredy
present (0=no change, 1=overwrite).
! 2006-11-29 - Hubert Degaudenzi
- this is the end of the release notes for the merge with the
v20r13 release (v20r9b branch).
! 2006-11-27 - David Quarrie
- fixed compilation problems for MacOS 10.4
! 2006-11-17 - Pere Mato
- ISvcLocator.h: Added new function eraseService() to erase a service
from the list of known services
- Service.cpp: The destructor calls eraseService() to cleanup the
service list
- Minor corrections for StatusCode.
! 2006-11-10 - Markus Frank -Patch #908
- Removed access to histogram factory.
- Added storage types for online usage to CLID.h
- new header HistogramBase.h to allow access to ROOT implementation
of AIDA histograms.
! 2006-11-09 - Pere Mato
- Added classes JobHistory, AlgorithmHistory, AlgToolHistory,
DataHistory, ServiceHistory from "GaudiHistory" package such that
it can be removed. The goal is to have less packages
(i.e. complexity)
- requirements: added pattern to generate Python configuration file
- genconf.cpp: adapted to new properties
================ GaudiKernel v21r0 ====================================
! 2006-10-31 - Pere Mato
- StatusCode.h(.cpp) - Reworked to avoid copying complicated objects
all the time
! 2006-09-25 - Hubert Degaudenzi
- added the scripts folder with the rootmapdump.py utility. This
scripts allows to dump the ROOTMAPs present in the
LD_LIBRARY_PATH. It can also check the duplication of entries.
! 2006-09-21 - Hubert Degaudenzi
- factored out the stacktrace function from the StatusCode class to the
System.cpp file.
! 2006-09-09 - Hubert Degaudenzi
- added dictionary generation for ExceptionSvc, IssueLogger,
StatusCodeSvc, THistSvc.
- fixed compilation problem for win32 in the StatusCode.cpp file.
! 2006-09-09 - Charles Leggett & Hubert Degaudenzi
- Imported new services interfaces from ATLAS: IExceptionSvc,
IIssueLogger, IStatusCodeSvc, ITHistSvc.
- StatusCode.h has been modified (and has now an implementation)
- new IssueSeverity.cpp.
! 2006-09-09 - Vanya BELYAEV - patch #839
- GaudiKernel/Grammars.h
Add a method StringGrammar::matchString, which allows to
substitute all "std::isspace" symbols with the blank.
It is a bit incorrect operation, but it allows
to split very long string into few lines.
It is incorrect since the overall number of blank symbols
in the string is a quantity which is difficult to control.
One still needs to be very careful with CR/LF symbols in the
opts-files.
This particular fix solves the problem with configuration
of DataOnDemandSvc, where long string are unavoidable.
The solution ( 'std::isspace' --> ' ' ) has been discussed with
Marco Cattaneo. We have agreed that this solution is not safe,
but it solves the particular problem.
The fix is kindly provided by Sasha Mazurov (Alexander.Mazurov@gmail.com)
- GaudiKernel/Property.h
1) reshuffle the property assignment/load methods to eliminate the
duplication of actions, from now Property::load is implemented
through Property::assign. It provides a bit more coherency in
the code.
2) the actual action for Property::assign and Property::load is
been released a bit, not one can load/assign either from the
property of the same type or from the valid string representation
of property of any type. Previously only StringProperty has been
allowed.
3) The full template specializations of
PropertyWithValue<std::string>::toString and
PropertyWithValue<std::string>::assign are provided
- there are no "extra" confusing double quotes now in the
string printout
- the string is always parsed at assign, in particular it means
that all surrounding pairs of quotes will be removed
automatically as redundant
- GaudiKernel/ToStream.h
- modify a bit the implementation of Gaudi::Utils::toStream
for std::string to use single quotes if the string containt
double quotes
- add the implementation of Gaudi::Utils::toStream for boolean values
to print boolean values "Ã la Python" as "True" or "False"
- add the implementation for float/double/long double to print them
with reasonable precision. It is important since the default
precision of ios_base is 6, which could be not enough, and
the precision of boost::lexical_cast is
std::numerical_limit<...>::digit10+1,
which is much more than we need.
- GaudiKernel/Property.h, src/Lib/Property.cpp
add few useful functions to descrease the number of ugly
technical lines in some public code
namespace Gaudi { namespace Utils {
bool hasProperty ( const IProperty* p , const std::string& name ) ;
bool hasProperty ( const IInterface* p , const std::string& name ) ;
Property* getProperty ( const IProperty* p , const std::string& name ) ;
Property* getProperty ( const IInterface* p , const std::string& name ) ;
bool hasProperty
( const std::vector<const Property*> , const std::string& name ) ;
const Property* getProperty
( const std::vector<const Property*> , const std::string& name ) ;
}}
================ GaudiKernel v20r9 ====================================
! 2006-08-21 - Ivan Belyaev
- patch #817. For new associatiove properties, e.g. map
the implemented behaviour do not fulfill the naive expectations. E.g:
A.a = { "a" : 1 , "a" : 2 , "b" : 3 , "a" : 10 } ;
A.a += { "a" : 100 , "a" : 200 };
The result will be the map:
{ "a" : 1 , "b" = 2 } ; // "The first wins"
this result is not in agreement with "naive" expectation for
std::map, where "the last wins". the attached patch solves the
problem, and now the behaviour of the properties is more coherent
with behaviour of std::map.
! 2006-08-06 - Markus Frank
- System.cpp: do not free strings after calls to strerror() or
dlerror(). This is known to cause valgrind errors because libc
internally allocates memory, but is the **correct** usage of these
functions according to the docs. Otherwise repeated calls tend to
screw up malloc.
! 2006-07-31 - Pere Mato
- Changed interface IJobOptionsSvc from pointer to reference to fix
bug #18581 overview: Memory leak due to changed behaviour of
JobOptionsSvc
================ GaudiKernel v20r8 ====================================
! 2006-07-14 - Stefan Roiser
- fixed type in dictionary for m_typeinfo member of the Property
class in the xml selection file.
! 2006-07-07 - Hubert Degaudenzi
- bug #17843: fixed extra semicolon and DOS end of lines.
! 2006-07-07 - Marco Clemencic
- patch #748: fixed the recipient of the std::string::find method. It
should not be assigned to int but to std::string::size_type since
it has a different size on 64 bits plateforms.
! 2006-06-26 - Hubert Degaudenzi
- bug #17739. Changed the return value of GaudiMain. Before it was always
returning 0 and now it returns the StatusCode of the ApplicationMgr
in the UNIX command line way.
- "0" for success
- "1" for failure
to test it for examples one could do:
>Gaudi.exe some.opts && echo "Gaudi has succeeded"
! 2006-06-15 - Hubert Degaudenzi
- Fix gcc 3.4.5 compilation problems in the new property parser.
! 2006-06-06 - Alexander Mazurov & Ivan Belyaev
- new property parser installed. It relies on the Boost::spirit
lexer/parser.
! 2006-06-06 - Vanya Belyaev
- fixed const problem in VectorMap.
! 2006-05-31 - Marco Clemencic
- patch #730. Fixes a bug in the constructor of
TransientFastContainer when it is called with an argument different
from 0.
================ GaudiKernel v20r7 ====================================
! 2006-05-22 - Marco Clemencic
- patch #727. Fixed a compilation problem on Win32 after using
std::map instead of hash_map in GaudiUtils::HashMap.
! 2006-05-19 - Marco Clemencic
- patch #725. Fixed a warning on Win32.
! 2006-05-11 - Marco Cattaneo
- patch #723. Redefines the unit "pascal" to "Pa" to avoid a name
clash that causes a compiler warning on on Windows in
SystemOfUnits.h
! 2006-05-11 - Vanya Belyaev
- added templated SmartRefVector constructor with first and last
iterator pointers as arguments
================ GaudiKernel v20r6 ====================================
! 2006-05-04 Marco Clemencic
- patch #720. Added TransientFastContiner<T> (and related helper classes
TransientFastContainerBase and DefaultObjectCleaner<T>).
The new container does its own memory management, recycling the objects not
used and not deleting them when it is cleared (just reset an internal
counter).
! 2006-05-02 Hubert Degaudenzi
- Added PhysicalConstants.h and SystemOfUnits.h (from CLHEP) in
GaudiKernel. The constants and units are in the Gaudi::Units
namespace.
- patch #715. Added boost allocator wrapper (Marco Clemencic).
- patch #719. Added 2 functions to make the UpdateManagerSvc work
safely in multi-thread environment. They allow to block the
activities of the service while interacting with it (Marco Clemencic).
! 2006-04-20 Hubert Degaudenzi
- clean up of the legacy lines of code for obsolete compiler version
(before gcc 3).
! 2006-04-20 Marco Clemencic
- patch #705. The default hash functions is extremely expensive for
integers. This causes extremely poor performaces for the standard
KeyedContainer<>. The patch introduces efficient specializations of
Hash<> for int, long and long long (and unsigned).
! 2006-04-13 Charles Leggett and Hubert Degaudenzi
- inserted ATLAS feature INamedInterface.
================ GaudiKernel v20r5 ====================================
! 2006-03-15
- modified the returned values of the Auditors
beforeExecute/afterExecute (etc) to be void instead of StatusCode::SUCCESS.
! 2006-03-09 Markus Frank
- patch #691. Add support for objects in N-tuples. Note: This only works for
NTuple::Item. NTuple::Array and NTuple::Matrix is __NOT__
supported for objects. If you need this functionality store an
std::vector<Object*>. See GaudiExamples/POOLIO/EvtCollectionWrite
for an example of the usage.
- Added GaudiMain.cpp in the library.
! 2006-03-09 Markus Frank
- patch #668. Fix retrieval of error string in System::getErrorString().
The routine caused a core dump on linux when dl_error() returned NULL.
! 2006-02-24 Marco Clemencic
- patch #678. It has been reported that MS implementation of hash_map
is extremely slow. The idea is to use std::map instead (which is
faster than hash_map on win!!!), while we investigate to find a
better solution.
! 2006-02-23 Hubert Degaudenzi
- fix compilation warnings with Gcc 3.4.4
! 2006-02-14 Ivan Belyaev
- added new allocator imported from GEANT4. They should decrease the
allocation time significantly. Please have a look at the
GaudiExample "Allocator".
! 2006-02-06 Hubert Degaudenzi
- fixed windows compilation warning (bug #14852).
================ GaudiKernel v20r4 ====================================
! 2006-01-27 Hubert Degaudenzi
- corrected constructor call syntax of fstream in genconf to be
compatible with Linux.
! 2006-01-26 Pere Mato
- Added new program genconf to generate the python configuration file for component libraries
- Fix bug #14665 overview: IID_IAlgorithm and IID_IConversionSvc Conflict
- Moved some class in the dictionary of GaudiPython to the dictionary in GaudiKernel
! 2006-01-25 Marco Clemencic
- Added class Gaudi::Time (based on seal::Time). Updated interfaces
IDetDataSvc, IValidity and IUpdateManager in order to use the new class.
Modified dictionary.h and dictionary.xml in order to produce dictionaries
for Gaudi::Time.
! 2006-01-25 Hubert Degaudenzi
- added IUpdateManagerSvc in the dictionary generation.
! 2006-01-19 Pere Mato
- Adapted to use genreflex (Reflex from ROOT)
================ GaudiKernel v20r3 ====================================
! 2006-01-18 Hubert Degaudenzi
- fixed forward declarations in GaudiKernel/IMagneticFieldSvc.h
! 2006-01-12 Pere Mato
- Added std::vector<const ContainedObect*> in the dictionary
! 2006-01-10 Hubert Degaudenzi
- moved the macro definitions DECLARE_XXX_FACTORY and
DECLARE_NAMESPACE_XXX_FACTORY from DeclareFactoryEntries.h to their
own header files where XXX are Algorithm, Auditor, Converter,
Object, Service, Tool.
- corrected wrong syntax in macros.
- moved the remaining macros (DECLARE_XXX and DECLARE_NAMESPACE_XXX)
from DeclareFactoryEntries.h to their corresponding header files.
! 2005-12-20 Hubert Degaudenzi
- Commented out AIDATupleSvc.
! 2005-12-20 Marco Clemencic
- Added UpdateManager interface.
! 2005-12-05 Manuel Domenech
- added setCriteria method to IAIDATupleSvc interface to allow passing
a preselection criteria for reading data from a tuple.
! 2005-11-15 Markus Frank
- Fix problems of KeyedContainer when using keys with explicit constructors.
================ GaudiKernel v20r2 ====================================
! 2005-11-22 Pere Mato
- Booststrap.h: converted Gaudi class into a Gaudi namespace
! 2005-11-22 Vanya Belyaev
- Added class GaudiUtils::VectorMap (former _VctMap from Vanya) that implements associative version inspirer
from the Loki library by Andrei Alexandrescu.
an associative vector
inspired from Loki associative vector.
Fix problems of KeyedContainer when using keys with explicit constructors.
! 2005-11-21 Markus Frank
- Fix problems of KeyedContainer when using keys with explicit constructors.
! 2005-11-21 - Pere Mato
- Added new methods in IAlgorithm: isInitialized(), isFinalized() and isExecuted() (suggested by Vanya)
! 2005-11-18 - Marco Clemencic
- Added 3 classes to replace the HashTable and the hacks in stl_hash.h
* GaudiUtils::Map is a simple associative container. It is implemented as a proxy
to a template class implementing the underlying container (defaulting to std::map).
It features "operator[](key) const" and "operator()(key) const". It has a virtual
destructor so that it can be extended via inheritance.
* GaudiUtils::Hash is a simple hash function (based on Stroustrup's example) which
correctly handle pointers, std::string and char*. It is portable between Linux and Windows.
* GaudiYUtils::HashMap is a Map which uses internally a hash_map. The differences
between gcc and VC7 are taken into account in order avoid users having to put "#ifdef"s.
! 2005-11-09 - Chris Jones
- Change output level data member in Algorithms and AlgTools from int
to IntegerProperty, and add a non-const access method for this
property. Allows uses to attach callback handle methods to this
property (Such as in GaudiAlg) to allow them to react as needed
to changes in the output levels. Needed in GaudiAlg to force the
creation of a new cached MsgStream object.
================ GaudiKernel v20r1 ====================================
! 2005-11-03 Pere Mato
- added the changes to dictionary.xml delection file. Removed the dictionary_rflx.xml file.
! 2005-10-13 Hubert Degaudenzi
- removed obsolete files GaudiKernel/KeyedDictionary.h and
GaudiKernel/SealDictonary.h.
! 2005-10-10 Hubert Degaudenzi
- added the transient state to the refCount and hasKey Methods of
KeyedObject in the dictionary_rflx.xml selection file (Markus Frank).
================ GaudiKernel v20r0 ====================================
! 2005-09-12 Pere Mato
- MsgStream.h: removed special stream function for StatusCode. It did
not help on WIN32
- GaudiException.h: added explicit call to accessor of StatusCode to
unsigned long code
! 2005-08-05 Hubert Degaudenzi
- added "long long" format in the instantiation of SimpleProperty and
SimplePropertyRef templates.
! 2005-08-05 Hubert Degaudenzi
- applied patch #502. Minor polishing of Stat and StatEntity classes
to improve their functionality (in absolutely backward compatible
way). From now the usage of StatEntyty in 'standalone' mode is
greatly simplified (previously it has been tightly coupled to
Chrono&Stat Service, and "public" interface was ugly). The
functionality of Stat class is also improved (Vanya).
! 2005-07-25 - Hubert Degaudenzi
- fixed bug #9475. Missing #include <stdexcept> (Mattias Ellert).
! 2005-07-25 - Hubert Degaudenzi
- fixed bug #9474. fixed bad friend declaration. According to the C++
standard typedef'ed typenames may not be declared friends. (Mattias
Ellert).
! 2005-07-25 - Hubert Degaudenzi
- fixed bug #9468. Missing typname keyword within templates (Mattias Ellert).
! 2005-07-21 - Hubert Degaudenzi
- fixed bug #9467
! 2005-07-21 Markus Frank
- patch #445. Move basic dictionaries from GaudiPoolDb to GaudiKernel
gccxml inputs in new subdirectory dict
output id a dictionary DLL called "GaudiKernelDict"
Reflex dictionary produced in parallel: "GaudiKernelRflxDict"
- Fix inline bug in SmartDataPtr (function was never instantiated,
hence problem did not appear)
- Fix data member access in RndmGenerators.h
! 2005-07-21 Hubert Degaudenzi
- patch #476. Compilation of some Reflex dictionaries currently
fails. I'd need an overload for the MsgStream::operator << for
StatusCode to cure this. The attached patch is one proposal how it
could be done (Stefan Roiser).
! 2005-07-18 Hubert Degaudenzi
- fixed bug #9466. extra semicolon (Mattias Ellert).
! 2005-07-15 Hubert Degaudenzi <Hubert.Degaudenzi@cern.ch>
- fixed bug #9476. Missing keyword "class". (Mattias Ellert)
================ GaudiKernel v19r3 ====================================
! 2005-07-13 Hubert Degaudenzi <Hubert.Degaudenzi@cern.ch>
- fixed bug #9479
! 2005-05-10 Hubert Degaudenzi <Hubert.Degaudenzi@cern.ch>
- modifications for the new service StagerSvc. Added IStagerSvc and a
new incident "EndStream" that will trigger the end of the
processing of one file.
================ GaudiKernel v19r2 ====================================
! 2005-05-10 Hubert Degaudenzi <Hubert.Degaudenzi@cern.ch>
- added path access to SmartRef (Marco Clemencic)
! 2005-04-22 Hubert Degaudenzi <Hubert.Degaudenzi@cern.ch>
- GaudiKernel/IValidity.h (IValidity): added some const qualifiers
to function members of the IValidity class (Marco Clemencic).
================ GaudiKernel v19r1 ====================================
! 2005-04-14 - Eric VAN HERWIJNEN
- modification of the IMonitor.h interface
! 2005-04-14 - Hubert Degaudenzi
- removed the following interface files:
GaudiKernel/IDetectorElement.h
GaudiKernel/IGeometryInfo.h
GaudiKernel/ILVolume.h
GaudiKernel/IPVolume.h
GaudiKernel/ISolid.h
GaudiKernel/ITransportSvc.h
================ GaudiKernel v19r0 ====================================
! 2005-03-02 - Markus Frank
- Obsolete interface call: StatusCode IAlgManager::declareAlgModule
- New interface call: StatusCode IAlgManager::getFactory(const std::string& alg_type, IAlgFactory*& fac);
- Obsolete interface call: StatusCode ISvcManager::declareSvcCreator
- Obsolete interface call: StatusCode ISvcManager::declareSvcModule
- New interface call: StatusCode ISvcManager::getFactory(const std::string& svc_type, ISvcFactory*& fac);
================ GaudiKernel v18r3 ====================================
! 2005-02-25 - Pere Mato
- System.cpp: applied patch to overcome CXXABI problem (merge from v17r1)
! 2005-02-24 - Manuel Domenech
- Added the interface IAIDATupleSvc.h for the AIDA-based tuple service.
- ClassID, Algorithm.h and lib/Algorithm.cpp: added declarations for the AIDATupleSvc.
================GaudiKernel v18r2=====================================
! 2005-02-15 - Markus Frank
- SealDictionary.h - fix for SmartRefDict.
! 2005-02-11 - Pere Mato
- Algorithm.cpp: removed the name extensions such as ".sysInitialize()", ".sysExecute()"
and ".sysFinalize()" in the messages generated by the base class.
It makes it simple to control over the threshold messages from algorithm. (suggested by Vanya)
! 2005-02-02 - Pere Mato
- System.cpp(typeinfoName): removed extra spaces between types and "*" and "&"
================GaudiKernel v18r1=====================================
! 2005-01-19 - Pere Mato
- DataObject.h(.cpp) Added copy constructor. Problem reported by Mikhail Kirsanov (HARP)
- IMagneticFieldSvc.h: Changed forward declarations for CLHEP classes.
================GaudiKernel v18r0=====================================
! 2004-12-10 - Markus Frank
- GaudiKernel/IDataProviderSvc.h
Update doc for unregisterObj entries, which was uncorrect.
! 2005-01-12 - Pere Mato
- IHistogramSvc.h: Added profile histograms
- ClassId.h: Added profile histograms CLID's
! 2005-01-11 - Pere Mato
- Changed IEventProcessor interface to add stopRun() method
- Changed System.cpp to load dynamic libraries with RTLD_GLOBAL flag and commented out
the special typo_info implementation
! 2004-12-10 - Pere Mato
- Added interface IMonitorSvc.h (from Gaucho)
- Algorithm.h,.cpp: Added new method declateInfo(...) to declare monitoring variables
! 2004-12-06 - Markus Frank
- SealDictionary.h
Make use of ReflectionBuilder/CollectionProxy.h
for new container handling using ROOT CollectionProxy mechanism.
- Service.cpp:
Inhibit printing of services before the properties are properly
set. Until the properties are set, each service inherits the
output level of the message service.
This was apparently screwed with the invention of the
OutputLevel update handler for services.
This removes the "ignored" global printout level of the
sub-eventselector instances when opening new files.
! 2004-09-13 - Markus Frank
- Protection in KeyedContainer::configureDirectAccess()
To protect against reading NULL pointers - a problem
reported by M.Cattaneo.
! 2004-10-27 - Pere Mato
- Changed order of finalization of Algorithm/Sub-algorithms
bug #3903 overview: finalize and nested algorithms
================GaudiKernel v17r0=====================================
! 2004-10-25 - Pere Mato
- Algorithm.cpp: added setFinalized() at the end of of the finalization to avoid doing it
more than once.
- Service.cpp: added protection on accessor msgSvc() for the MessageSvc itself.
- Changed IAlgManager interface.
- Added initializeAlgorithms() and finalizeAlgorithms()
- Removed declareAlgCreator()
- Added optional argument to createAlgorithm() to tell if the Algorithm should be managed
- Removed PathResolver.h,cpp because of compilation problems on Windows
! 2004-08-10 - Charles Leggett
- new class ServiceLocatorHelper used to implement service methods
in Algorithm.(h,cpp), Service.(h,cpp), AlgTool.(h,cpp), Converter.(h,cpp)
- ISvcLocator.h: new method service<T>(type, name, T*, bool) to
create/retrieve a non-default instance of a service
! 2004-08-10 - Charles Leggett
- PathResolver.h,cpp: added
- Service.(h,cpp): callback for output level
================GaudiKernel v16r2=====================================
! 2004-08-03 - Vanya BELYAEV
- GaudiKernel/ParticleProperty.h
Two methods for particle<-->antiparticle relations
const ParticleProeprty* antiParticle() const ;
void setAntiParticle( const PArticleProeprty* ) ;
- GaudiKernel/ChronoEntity.h, GaudiKernel/StatEntity.h
src/Lib/ChronoEntity.cpp, src/Lib/StatEntity.cpp
Files are moved from GaudiSvc package to allow run-time
public inspection of Chrono & Stat counters
- GaudiKernel/IChronostatSvc.h
Two method are added to allow run-time publc inspection of
Chrono & Stat counters:
const ChronoEntity* chrono ( const ChronoTag& tag ) const ;
const StatEntity* stat ( const StatTag& tag ) const ;
================GaudiKernel v16r1=====================================
! 2004-07-22 - Pere Mato
- DataObject.h: Added ostream operator << . In this way we can output DataObjects using ostream or MsgStream. This was
already possible with ContainedObjects.
! 2004-07-20 - Pere Mato
- KeyedDictionary.h: Reverted typo removal in KeyedContainer<> class name. Otherwise the existing files are not
readable.
- Incicent.h: Added doxygen comments (from Chris Jones)
- Property.h/MsgStream.h: added more specialized templates for handling MsgStream operator << and
stream operator << for ArrayProperties and vector<T>. This should avoid compilation errors
detected by Marco.
! 2004-07-19 - Pere Mato
- System.h/cpp: added implementation for Windows
- MsgStream: replaced a bunch MsgStream& operator <<(MsgStream&,...) by a templated one
MsgStream& operator <<(MsgStream&,T) to handle any type for which the standard
ostream& operator << (stream&, T) exists.
- Property.h: added standard ostream& operator <<(ostream&,SimpleProperty<T>)
================GaudiKernel v16r0p1=====================================
! 2004-07-16 - Charles Leggett
- DataObject.h: addeed refCount() method
- System.h/cpp: added methods to get env vars and system parameters
================GaudiKernel v16r0=======================================
! 2004-07-13 - Charles Leggett
- Additions for History Objects: HistoryObj.*, IHistorySvc.h, IAlgContextSvc.h
! 2004-07-13 - Pere Mato
- ParticleProperty.h: added pdgID() and setPdgID() as alises to jetsetID() and setJetsetID()
- Property.cpp: added template specialization to support string booleans in setProperty()
("false", "true", "False", "True", ...)
! 2004-26-06 - Markus Frank
- Small update in SmartIF.h to get a cleaner API
- New interface: IPartitionControl
Generic interface to manipulate services with several
encapsulated instances "Partitions"
- New Interface: ICounterSvc
Interface to manage/create/access counters and groups of counters
! 2004-07-02 - Pere Mato
- IInterface.h Removed IID typedef to finally avoid clashes with windows.h
! 2004-15-05 - Markus Frank
- DataSvc.h/cpp Let the DataSvc connect to the incident service
- Generate incident on persistent data access
Enable using DataSvc.EnableAccessHandler = 1;
Set incident name: DataSvc.DataAccessName = "EventDataAccess";
- Generate incident on data fault:
Enable using DataSvc.EnableFaultHandler = 1;
Set incident name: DataSvc.DataFaultName = "EventDataAccess";
! 2004-01-05 - Markus Frank
- IEvtSelector.h New upgraded interface from C.Cioffi - NOT backwards compatible
- Environment.h/cpp New header file extending the System namespace to handle
standard environment manipulations
- Tokenizer.h/cpp Allow for environment resolution in token values - if requested.
Default is backwards compatible
================GaudiKernel v15r4=======================================
! 2004-04-22 - Vanya Belyaev
- Added changes from Vanya to fix the problems reported by Matt on output level for AlgTools
================GaudiKernel v15r3=======================================
! 2004-04-19 - Markus Frank
- KeyedContainer.h: Modified erase() method to use a temporary vector to improve performance.
Tested by Chris Parkes: The new keyed container code
VeloSim:execute 238ms/event
to be compared with the old timing
VeloSim:execute 638ms/event - old code, using original keyed container
================GaudiKernel v15r2=======================================
! 2004-03-04 - Gloria Corti
- IParticlePropertySvc.h: Changed interface to add the Pythia ID
- ParticleProperty.h: Changed to Pythia ID in constructor and remove obsolete
accessors.
================GaudiKernel v15r1=======================================
! 2004-01-23 - Markus Frank
- SmartRef.h/SmartRefbase.h Replaced inheritance by object embedding. This change
is neded to optimize CPU for persistency based on POOL.
! 2004-01-20 - Vanya BELYAEV
- Algorithm.h 1) add protected accessor to m_outputLevel field
2) add shortcuts evtSvc() and svcLoc()
3) resurrect default(empty) Algorithm::initialize()
and Algorithm::finalize() methods
4) split 'long' lines to please LHCb-flavour Emacs
- AlgTool.h 1) add protected accessor to m_outputLevel field
2) add shortcut svcLoc() to serviceLocator() method
3) split 'long' lines to please LHCb-flavour Emacs
================GaudiKernel v15r0=======================================
! 2004-01-08 - Werner Wiedenmann
- System.h: use gaudi "__linux" #define rather than LINUX
- class AlgTool: same MT-naming treatment as for Algorithm andService (use service_i)
- ThreadGaudi.cpp: deal with AlgTool parents name
- Converter.cpp: get thread name from conversion svc
! 2004-01-08 - Vanya Belyaev
- IJobOptionsSvc interface has been modified to add new method (readOptions(...)) to be
ab;e to read additional option files.
! 2003-12-12 - Markus Frank
- Added Keyed container as intrinisc Gaudi container object for Keyed objects
- Added POOL storage types to ClassID.h
! 2003-12-12 - Markus Frank
- Added Keyed container as intrinisc Gaudi container object for Keyed objects
- Added POOL storage types to ClassID.h
! 2003-12-09 - Markus Frank
- A bunch og changes in preparation to the integration with SEAL/POOL
- Added dependency with SEAL
================GaudiKernel v14r2=======================================
! 2003-12-03 - Grigori Rybkine
- Added using AIDA::<ClassName> to allow use of AIDA in applications
without prefix AIDA:: (as before)
! 2003-11-26 - Pere Mato
- Adapted to new version of AIDA (namespaces)
- Replaced macro WIN32 by _WIN32
================GaudiKernel v14r1=======================================
! 2003-11-25 - Pere Mato
- Modifications for Mac OSX (Guy Barrand)
! 2003-11-25 - Pere Mato
- Added GaudiKernel/stl_hash.h to provide hash maps and sets
! 2003-11-20 - Pere Mato
- Added IncidentTypes namespace with incident type names
[ Bug #1085 ] 'Standard' incidents
================GaudiKernel v14r0=======================================
! 2003-07-03 - Markus Frank
Major upgrade for use of POOL. Main change: extend technology specifier to
int from unsigned char. Please note, that the changed interfaces are NOT BACKWARDS
compatible. In particular in the converter area concrete user classes must
support integer technology types. To create a compiler error, the converter
base class does no longer have the method repSvcType().
ModuleInfo.cpp Remove signed/unsigned warning
MsgStream.h Added missing header file
DataObject.cpp
LinkManager.cpp/h Dynamic link manager creation for POOL
ClassID.h
CnvFactory.h
ConversionSvc.h
Converter.cpp/h
GenericAddress.h
IAddressCreator.h
ICnvFactory.h
ICnvManager.h
IConverter.h
IOpaqueAddress.h
IPersistencySvc.h Integer technology types
NTuple.h
SmartRef.h
SmartRefBase.cpp/h Extend and allow customization for the usage in POOL
================GaudiKernel v13r5=====================================
! 2003-07-03 - Pere Mato
- MsgStream.h: added op << for std::vector
! 2003-06-25 - Paolo Calafiura, Pere Mato
- SmartDataObjectPtr: added const in operator = argument
- Algorithm.cpp, Converter.cpp, Service.cpp: Fixed service_i() [ Bug #927 ]
================GaudiKernel v13r4p1=====================================
! 2003-06-26 - Pere Mato
- System.cpp: removed white spaces in System::typeinfoName() for templated classes with more than one argument.
================GaudiKernel v13r4=====================================
! 2003-05-07 - Paolo Calafiura
- Algorithm.cpp: sysExecute returns immediately if isEnabled() false
! 2003-05-06 - Paolo Calafiura for RD Schaffer
- IAddressCreator.h and ConversionSvc: new creatAddress from string interface
! 2003-04-29 - Sebastien Ponce
- solution to the gcc 3.2 dynamic_cast problem. For deeeeeep explanations
of both the problem and the solution, see doc/dynamic_cast.pb
! 2003-04-18 - Paolo Calafiura
- DataSvc.cpp: protect registerObject against null DataObj pointer (fail)
! 2003-04-15 - Paolo Calafiura
- NTupleImplementation.cpp: delete m_buffer mismatched with array new in
RootHistCnv::RCWNTupleCnv::book
- System.cpp: fix memory leak in getErrorString
! 2003-04-10 - Marco Cattaneo
- RndmGenerators.cpp: Fix a memory leak at finalisation
! 3002-04-04 - Pere Mato
- Updated IAddressCreator interface with two convert IOpaqueAddresses to
string format and vise versa (proposal by RD Shaffer)
virtual StatusCode convertAddress( const IOpaqueAddress* pAddress,
std::string& refAddress) = 0;
virtual StatusCode createAddress( const std::string& refAddress,
IOpaqueAddress*& refpAddress) = 0;
! 2003-04-01 - Sebastien PONCE
- some coding convention applications
- bug fix in PropertyMgr concerning the output of property names
! 2003-03-13 - Paolo Calafiura
- moved pthread handle and "_self" call to System.h
! 2003-03-11 - Paolo Calafiura
- MsgStream: define MSG::hex and MSG::dec for gcc 3.2
- rename ThreadLibGaudi.h as ThreadGaudi.h
! 2003-02-27 - Charles Leggett & Paolo Calafiura
- IMessageSvc: added two new abstract methods useColor and
getLogColor (all existing MsgServices needs updating!).
Added MSG::Color enum
- MsgStream: support colored messages
- changes to Converter service method (see Algorithm and Service
below). TO DO: extract common service_i implementation
! 2003-02-25 - Werner Wiedenmann & Paolo Calafiura
- add ThreadLibGaudi.{h,cpp}: utilities to get and parse thread
instance names
- changes to Service and Algorithm:
- service method asks first for thread specific service
instance, if not available get generic service instance
- allow for setting of thread specific and generic properties
- create thread specific sub-Algorithms automatically
! 2003-01-21 - Markus Frank
- Add second connectOutput call to conversion service interface.
Second argument allows to specify the opening mode
(NEW, RECREATE, UPDATE)
- DataTypeInfo: add 2 new types: LONG_STRING, LONG_NTCHAR
- (I)SelectStatement: Allow for more generic selects than
only FUNCTION and STRING
! 2003-01-06 - Sebastien Ponce
- improvements in support for gcc 3.2
================GaudiKernel v13r3=====================================
! 2002-11-21 - Sebastien Ponce
- fixes in Converter.cpp to avoid memory leaks
! 2002-11-19 - Pere Mato
- Added setExecuted() after execute() in Algorithm::sysExecute(). Requested by
Vanya.
================GaudiKernel v13r2=====================================
! 2002-11-06 - Sebastien Ponce
- fixes in order to remove deprecated warnings on gcc 3.2
- coding conventions applications
! 2002-11-11 - Markus Frank
- Timing.cpp: Use routine ::gettimeofday(...) to measure current time.
This improves the precision of several timing measurements
(current time, elapsed time) to 1 micro second.
The change affects linux only.
! 2002-11-08 - Markus Frank
- Move CLID for N-tuples into ClassID.h
- Fix bug in ISvcLocator.h: If service initialization failed, status was still OK.
! 2002-11-06 - Markus Frank
- DeclareObjectFactory.h - add declarations for containedobject factories
and dataobject factories.
================GaudiKernel v13r1=====================================
! 2002-10-21 - Pere Mato
- IRegistry.h - the typedefs in this class are now public.
! 2002-10-21 - Sebastien Ponce
- Bug fix in StreamBuffer for deserialization of char*
! 2002-10-11 - Paolo Calafiura
- Added protection in ConversionService::setDataProvider: since ATLAS use
StoreGate and pass a NULL pDataSvc pointer.
================GaudiKernel v13r0=====================================
! 2002-10-04 - Pere Mato
- Changed interface IJobOptionsSvc to add accessors to the JobOptions
catalogue
! 2002-09-27 - Sebastien Ponce
- fixes in order to compile on gcc 3.2
- lots of coding conventions applications
! 2002-09-25 - Markus Frank
- Add declarations for object factories to DeclareFactoryEntries.h
- Remove windows compiler warning in Bootstrap.cpp
! 2002-09-25 - Sebastien Ponce
- Implementation of the reinitialize method for DataSvc
! 20020916 Pere Mato
- Changes to clean the reference counting and memory deallocation
detected by the "valgrind" tool.
! 20020703 Paolo Calafiura
- RegistryEntry.h: put DataSvc in the global ns when declaring as friend
- Service.h: add ISvcLocator include for service() inline implementation
! 20020628 Pere Mato, Sebastien Ponce
- Improved error reporting when loading dynamic libraries
- Changed INFO messages to DEBUG when initializing services
- Replaced forward class declarations by including the concerned header files. This
is to aliviate user confusion.
- Added function format(string fmt, ...) that can be used to format messages
within the MsgStream class.
Example:
log << MSG::INFO << format("Evt: %8d Run: %8d", evt, run) << endmsg;
Caveat: Since the unspecified argument list is used (...) the arguments can not
be cheched for the correct type and possible conversions are not triggered.
! 20020529 Paolo Calafiura
- Auditor.h: service() needs IServiceLocator header file
- DeclareFactoryEntries.h: typo in AudFactory name
! 20020506 Paolo Calafiura
- PropertyMgr: use interface hub (Massimo ApplicationMgr refactoring)
! 20020506 Andrea Valassi
- Change in MsgStream.h to allow the use of std::hex on Windows
================v12r2=====================================
! 20020506 Pere Mato
- Bug fix in AlgTool.cpp. Pointer to ToolSvc not initialized
(Reported by O. Callot)
! 20020502 Pere Mato
- Bug fix in base classes Service and Converter. The accessor msgsvc() shpould
returns always a valid MessageSvc (Reported by RD Schaffer)
- Added templated function service() in Converter base class.
- Bug fix in Service.cpp. The finalize method access violates if called before
initialize (Reported by Wim Lavrijsen)
================v12r1=====================================
! 20020426 Markus Frank
- Bug fix in DataSvc, which inhibited automatic directory
generation if intermediate leafs were present.
================v12r0=====================================
! 20020408 Pere Mato
- Included ISvcLocator.h and IMessageSvc.h in Algorithm.h instead
of the existing forward declaration
! 20020405 Pere Mato
- Added two new accessors to AlgTool base class
templated service( name, svc, createif) to access any service
tooSvc() to access the tool service
! 20020327 Pere Mato
- Changes needed for Solaris (by Wim Lavrijsen). Details:
+++ GaudiKernel/src/Lib/Property.cpp
getQuotedItem() in unnamed namespace instead of static
+++ GaudiKernel/src/Lib/ModuleInfo.cpp
explicit cast added: "if ( 0 != ::dladdr((void*)System::moduleHandle,...
+++ GaudiKernel/src/Lib/System.cpp
in System::typeinfoName(), added a #elif defined(sun)
+++ GaudiKernel/CnvFactory.h
removed virtual inheritence in class CnvFactory & CnvFactory2
+++ GaudiKernel/ObjectFactory.h
removed virtual inheritence in class ObjectFactory & ObjectFactory2
! 20020315 Markus Frank
- Kernel.h
Properly #ifdef LONGLONG_MAX, LONGLONG_MIN
- MsgStream.h
Add operator<<(longlong), operator>>(longlong&)
- StreamBuffer.h
Add serialization for std::vector, std::list
Add operator<<(longlong), operator>>(longlong&)
- Converter.cpp
Do not dereference dataProvider if pointer is invalid
- TimePoint.h
Add StreamBuffer& operator<<(), StreamBuffer& operator>>(),
MsgStream& operator<<()
- TimePoint.h
Add MsgStream& operator<<()
- ITime.h
Add MsgStream& operator<<()
! 20020213 - Markus Frank
- Added clear() method to ObjectVector<T> and ObjectList<T>
clear() removes all elements from the ObjectVector and ObjectList<T>
! 20020215 Pere Mato
- Removed dependency with AIDA
- Eliminated the old IHistogramXXX interfaces. Users should use the
AIDA ones directly
- Changed ClassId.h and IHistogramSvc.h to include 3D histograms
! 20020225 Markus Frank
- Problem reported by Kambiz Mahboubi fixed concerning the
user defined random number generator (i.e. DefinedPdf)
- GaudiKernel/RndmGenerators.h
! 20020213 - Pere Mato
- Algorithm.cpp: Fixed bug
The status code of sysInitilize() of sub-algorithms was not
checked. Now it should fail and report an error.
================v11r1=====================================
! 20020128 - Markus Frank
- DataObejct.cpp: Fixed bug
Automatically create leaves on registerAddress if the
Option "ForceLeaves" is set to true
- SmartRefs.cpp:
Fixed Feature: For smart refs to ContainedObject(s), resolve
parent pointer only when needed.
- ConversionSvc.cpp:
Bug fix: Converters were never finalized. Done from now on, whenever the
converter gets disconnected from the conversion service.
================v11r0=====================================
! 20011212 - Pere Mato
- Added dependency to AIDA requested by David Quarrie
! 20011207 - Sebastien Ponce
- Changed interface IConversionSvc.h. Added method converter(const CLID&) to get
the converter with that CLID.
! 20011126 - Markus Frank
- MsgStream.cpp
Any change of the printout level from the application program
using MsgStream::setLevel(...) is ignored by the message service.
Update the local printout level on a by message bases and restore
the previous printout level.
! 20011120 - Markus Frank
- NTuple.h
the function entries addItem(...) are DEPRECATED for
Ntuple columns, which depend on an index column.
The replacement is: addIndexedItem(...).
This has repeatedly caused confusion for users.
Also added doxygen information for these entries.
! 20011115 - Pere Mato
- Added initialize() and finalize() methods in IAlgTool interface.
- The base class AlgTool implemements them as dummy but allows an implementation
of them on specific Algorithm Tools
- Removed the need to implement a queryInterface() in specific Algorithm tools. Instead
use the expresion declareInterface<Ixxxx>(this) in the constructor.
- Added releaseTool() method in IToolSvc.
! 20011111 - Pere Mato
- Many Changes from Markus for the DataStore classes re-design.
! 20011108 - Pere Mato
New versions of interfaces:
- ISvcManager.h (incompatible) Added more functionality to offload ApplicationMgr
- ISvsLocator.h (compatible) Changed getServices() to const
! 20011105 - Sebastien Ponce
Added new methods in DataSvc to be able to set the root without clearing
the store
! 20011009 - Pere Mato
Removed CLID_Event from ClassID.h to avoid clashes with Event.h generated from
GaudiObjDesc tools
! 20011005 - Pere Mato
Changed IInterface.h Introduced a new constructor for InterfaceID that
uses a name (class name) instead of the interface number. A hash
function converts the name into a number.
! 20011003 - Pere Mato
Changed SmartDataLocator.h reported by David Rousseau
! 20010914 - Pere Mato
Modified ClassID.h to include CondDB stuff
Solved bug in DataSvc.cpp reported by Andrea Valassi
! 20010710 - Pere Mato
Removed interfaces IGiGaSvc.h and IGiGaSetUpSvc.h
! 20010706 - David Quarrie
Extend IChronoStatSvc to support retrieving the delta-time between
start/stop pairs.
! 20010629 - Pere Mato
Changes in interfaces needed for improved interactivity support :
IService.h : Added new method reinitialize() to allow services to
take into account changes after the first time initialization
IAlgorithm.h : Added beginRun() and endRun() methods. These are called each time
the event loop is executed.
IEventProcessor.h : Added executeRun() and nextEvent() methods. This is to
eliminate the need to use the IAppMgrUI interface in the
EventLoopMgr components.
IAppMgrUI.h : Renamed method state() to stateName().
IScriptingSvc.h : Deleted
! 20010627 - Markus Frank
Bootstrap.h/cpp : Allow to set the instance of the service locator
in case several ApplicationMgr instances are present.
ObjectVector.h,
ObjectList.h : Add forward typedefs for pointer and const_pointer
(Requested by P.Calafiura/LBL)
RefTable.h : Implement serialize methods
RegistryEntry.h/cpp,
DataSvc.h/cpp : Implement several bug-fixes
- allow for objects in locations like /AA/BB/BB/BB/...
- allow to access objects with omission of the root
directory: "/Event/MC" is equivalent to "MC"
- execution optimization
SmartDataObjectPtr.h : Fix annoying compiler warning
SmartRefBase.h,
SmartRef.h : operator==() was badly implemented (Found by O.Callot)
strcasecmp.h : WIN32 needs an additional #include <cstring>
! 20010625 - Pere Mato
- Added remote properties functionality. Changed PropertyMgr and base classes Service
and Algorithm
- Added MsgStream::endmsg with same functionality as endreq. (Request from ATLAS)
- Using AIDA Historams instead of LHCb private ones. The existing include files
include the new ones but generating a warning. The IAnnotation interface is added
because it does not exists in the used AIDA release
! 20010618 - v10 (Flr)
requirements - use GaudiPolicy v5
apply pattern package_stamps
! 20010518 - Pere Mato
Changed CLIDs in Reftable.h (re-tagged v9)
! 20010508 - Pere Mato
Fixed bug reported by M. Cattaneo. The OutputLevel of AlgTools was not
set correctly if the parent Algorithm didn't set it explicitely.
! 20010503 - Markus Frank
Allow access to data store items without specification of the top level
directory. It is equivalent to specify an histogram like "/stat/simple/1"
or simply "simple/1". Note that the the entire prefix "/stat/" must be
omitted. The use is backwards compatible.
Added a qualifier ALWAYS to the message service specifying that a given
message should always be printed.
ie.
MsgStream log (msgSvc(), "Name")
log << MSG::ALWAYS << "Hello." << endreq;
will result in
Name SUCCESS Hello.
and will not be omitted.
! 20010430 - Markus Frank
Bug fixes:
GaudiKernel/DllMain.icpp WINNT: Processhandle should no longer be closed
since the handle is shared for all DLLs.
GaudiKernel/INTuple.h Interface extended to directly use NTuple pointer
to write/read n-tuple. It is no longer necessary to
use the n-tuple service for these actions.
NTupleImplementation.h/cpp dto.
GaudiKernel/SmartDataPtr.h Bug fix:
SmartDataPtr<Object> obj (...)
if ( obj ) {...}
Check succeeded if object is present however
had bad type. Now this check checks for the
presence of the object AND the data type.
Moved pointer to object from SmartDataObjectPtr
to SmartDataStorePtr (template class).
Also moved corresponding check operators.
GaudiKernel/SmartDataLocator.h dto.
GaudiKernel/SmartDataStorePtr.h dto.
GaudiKernel/SmartDataObjectPtr.h dto.
GaudiKernel/SmartDataObjectPtr.cpp dto.
! 20010320 - Sebastien Ponce
- PropertyMgr.h Avoid compiation errors for egcs 2.95.2
- Debugger.cpp, ProcessDescriptor.cpp Avoid compilation errors for 2.95.2
- MsgStream.h Added the bool type in the operator<<().
! 20010320 David Quarrie
- Fix Linux macro problem in Kernel.h (should be __linux, not linux). Fix
memory leak in Property.h. Fix a destructor problem in PropertyMgr.h by
adding a std::vector<bool> to keep track of Property ownership. Add
a protected state() member function to Service to allow subclasses to
access the current state.
! 20010319 Pere Mato
- Fixed interface IAddressCreator
! 20010316 Markus Frank
- New Interface added IEventProcessor
! 20010315 Andrea Valassi
- Minor changes in IValidity.h, MsgStream.h ClassID.h
! 20010314 Pere Mato
- Removed const in IProperty::getProperty(const string&, string&)
Implies to modify all the classes implementing such interface
! 20010314 David Quarrie
IScriptingSvc.h Add execute( const std::string& ) to allow for execution
of a script.
Property.cpp Fix problem in dealing with either double or single quotes
as delimiters for string values.
! 20010313 Markus Frank
- GaudiKernel/
Bootstrap.h Add entry point to create multiple Application Managers
StreamBuffer.h Change in buffer allocation (See Gaudi Developers message)
strcasecmp.h Make inline function for WIN32 to standardize on Linux str(n)casecmp
without all the #ifdefs
HashTable.h Bug fix by Traudl Hansl-Kozanecka (GLAST)
RefTable.h dto. Moved from LHCbEvent to GaudiKernel.
IRunable.h new interface for Runable
IAppMgrUI.h Allow access to the application managers state.
(May need changes to ApplicationMgr in GaudiSvc)
SystemBase.h ->@System
System.h ->@System
Timing.h ->@System
Memory.h ->@System
ModuleInfo.h ->@System
Debugger.h ->@System
- src/static/ Move all files to LIB - static is no longer needed at all!
- src/Lib
Bootstrap.cpp Add entry point to create multiple Application Managers
DataObject.cpp Remove warning on linux in acceptInspector()
ConversionSvc.cpp Bug-Fix: if on creating persistent objects no converter was
found success (!!) was returned. No correctly returns error.
System.cpp ->@System
Debugger.cpp ->@System
Memory.cpp ->@System
Timing.cpp ->@System
ModuleInfo.cpp ->@System
Win32PsApi.h ->@System
ProcessDescriptor.h ->@System
ProcessDescriptor.cpp ->@System
-@System:
Major code reshuffeling.
- Static class was changed to namespace. This will make it much simpler to
extend the functionality without actually having the default header System.h.
System.h containes the declarations of all functions in a backwards-compatible way.
- All other functionality was factorized out:
Memory.h/cpp Info about memory consumption
Timing.h/cpp Info about time consumption
ModuleInfo.h/cpp Info about running modules
Debugger.h/cpp Invoke debugger from running program (NT only)
ProcessDescriptor.h/cpp **Internal** access to process specific information
+ Win32Api.h as it is exported by Linux/NT. This header is PURELY internal
and should never be included directly.
! 20010313 Pere Mato
- Moved files ISolid.h, IPVolume.h, ILVolume.h, IDetectorElement.h, IGeometryInfo.h
ITransportSvc.h to the DesDesc package. Forward links to the new position have been
left in place.
! 20010312 Markus Frank
Changes to the job options processing
- implemented PropertyMgr::setProperty( const std::string& n, const std::string& v )
- Properly implement the macro QUOTEDELEMENTINPUT.
CTDay ir right when he quotes that this is "HACK Big Time". It's also undebuggable.
! 20010305 Pere Mato
- Corrected bug reported by O. Callot that the OutputLevel was not working
for Algorithms.
! 20010228 David Quarrie
- ARM page 210 tweaks to IToolFactory.h to avoid compiler warnings. Add
DECLARE_ALGTOOL(X) and DECLARE_TOOL(X) macros to DeclareFactoryEntries.h
! 20010226 Pere Mato
- Small changes to make it compile in NT
! 20010223 David Quarrie
- Changes for Solaris support, which is incomplete. The package compiles on
this platform, but some of the required template specialization "hacks" are
not fully understood and need to be revisited. Run-time debugging hasn't
yet begun.
- Changes to avoid compiler warning messages. These are all due to function
overloading across class hierarchies. The policy is described on Page 210
of the ARM. It's not yet clear whether these are compatible with the Visual
C++ compiler on NT. Modified files:
GenericLink.h IAlgFactory.h IAuditorFactory.h IDataDirectory.h
IFactory.h IHistogramSvc.h ISvcFactory.h ObjectContainerBase.h
ObjectFactory.h ObjectList.h ObjectVector.h
- Changes to support the scripting service. SimpleProperties now support
callback handlers for both reading and updating. The IProperty interface
has been extended to allow more flexible setting & retrieving of properties
from streams and strings. Modified files:
IProperty.h Property PropertyMgr PropertyVerifier
- Add support for explicitly specifying the CLID and name of the root
object in the transient event store (defaults are CLID_Event and "/Event").
Modified files:
DataSvc IDataManagerSvc
- Other details:
AlgTool Algorithm Auditor Service
Support new IProperty interface. Use function template for
declareProperty. Support deferred service instantiation in service
accessors.
FactoryTable.h
Fix compiler warning because of missing comment characters
System.cpp
Minor tweak to avoid SOlaris compiler warning.
! 20010223 Pere Mato
- Changes to deal with the template specialization in the new version of GNU c++ compiler
! 20010208 Pere Mato
- Modified System.cpp. Added suffix in the DLL name when loading
! 20000125 Pere Mato
- Changed CLID& by CLID in Converter base class to avoid weird problems with some
converters in Linux.
- Corrected bug in Algorithm::service()
- In Bootstrap.h, added static method Gaudi::svcLocator() to get the ISvcLocator*
in isolation.
- In ISvcLocation.h added a templated method ISvcLocator::service() to facilitate
retrival of services.
! 20010122 - GaudiKernel v8r1 and head revision (Flr)
GaudiKernel/IGiGa*.h - update include file path to new schema.
! 20000119 Pere Mato
<<< Changes are not compatible with existing packages. Everything should be re-built >>>>
- Eliminated static library GaudiBase.
- Eliminated the constant data files IInterface.cpp and Kernel.cpp
- Renamed class IID to InterfaceID
- Added de definition of the InterfaceID (IID) constants in each interface Ixxxx.h file
- Introduced new file ClassID.h which constains some the definition of CLID and some basic
constants.
- Changes asked by Vanya for the classes: ILVolume, IPVolume, ISolid, IGeometryInfo,
IDetectorElement
! 20001215 Pere Mato
- Renamed Time::Time class by TimePoint class
- The constants Time::time_absolutepast and Time::time_absolutefutre are now defined
in the TimePoint.h. The namespace Time has been removed.
! 20001213 Pere Mato
- Cleanup and adaptation to the new way of documenting the code based
on Doxygen (JavaDoc style)
- Incorparated changes done by D.Quarrie in the old LHCb repository
- Add isInitialized() and seInitialized() member functions and handling to prevent
multiple initialization attempts on the same Algorithm. This protection is needed
when scripting is in use.
! 20001119 - David Quarrie
- Implemented a new service called ScriptingSvc. This is a service (with an
initial implementation based on Python), which provides a scripting capability
at run-time as opposed to the JobOptionsSvc which is limited to run startup
time. This service has entailed some changes to the Gaudi kernel classes, which
are mainly extensions to existing interfaces, but with some backwards-compatible
rework of several of the Property classes.
+ Added new interface: IScriptingSvc
- Auditor/Auditor
Same changes as for Algorithm.
- Interfaces/IServiceLocator
Add list<IService*> getServices() for symmetry with the IAlgManager.
- JobOptionsSvc
A major rework of the Property class hierarchy to better support the scripting
interface. For the most part the changes are backwards compatible, with the
exception that bounds checking involves use of a verifier(). Note that the
PropertyRef.cpp & .h files are obsolete since that class is now typedef'd.
The PropertyList class for nested properties is not yet functional. Both of
these classes have been retained but bypassed in the build for now.
- Kernel/Service
Replace overloaded declareProperty function by function template.
Add PropertyMgr* accessor
- ApplicationMgr/AppMgrUI
Add AppMgrUI class as intermediate class between IAppMgrUI and
ApplicationMgr. This simplifies the scripting interface.
! 20001204 Pere Mato
Moved in ObjectVector<T> and ObjectList<T> from the LHCbEvent package.
Removed iterator from ObjectContainerBase class
! 20001122 Pere Mato
Various changes needed for CMT v1r7 and Nmake
! 20001128 GaudiKernel v8
move *.cpp into src/static/ and src/Lib/
move *.h, *.icpp and GaudiFactory.cpp into GaudiKernel/
update #include statements
!=============================================================================
! 20001018 - Pere Mato
- Implemented a new service called IncidentSvc. This allows to communicate
asynchronously things that happen in the system. The ApplicationMgr uses it to inform
when begining and ending the processing of one physics event.
+ Added new interfaces related to the new service: IIncidentSvc.h, IIncidentListener.h
+ Added new base class: Incident.h
- Changed IHistogramSvc to be consistent with the (HTL) histogram implementation using
double for defining histogram edges instead of float. Code using histograms needs to
be re-compiled!!. (CT0000000035488)
! =====================================================================
! 20001310 - Markus Frank
Changes files:
DataSvc/DataSvc.cpp
DataSvc/DataSvc.h
PersistencySvc/ConversionSvc.cpp;
System/System.cpp;
New Interfaces:
Interfaces/IDataSourceMgr.h;
Interfaces/IInspectable.h;
Interfaces/IInspector.h;
Interfaces/ISelectStatement.h;
Changed interfaces:
Interfaces/INTuple.h Extension for N-tuples to accept pre-selections
Interfaces/IPersistencySvc.h;
Kernel/DataObject.cpp; Extended to make dataobject inspectable
Kernel/DataObject.h; dto.
// New files:
Kernel/DataTypeInfo.cpp; allow access to primitive type information
Kernel/DataTypeInfo.h; dto.
Kernel/SelectStatement.h; base calss for selct statements (e.g. for N-tuples)
Kernel/Tokenizer.cpp; small parser for qualified strings of type: ITEM='value'
Kernel/Tokenizer.h; dto.
Kernel/GenericAddress.h; Fix bug when returning object name from datadirectory
Kernel/IInterface.cpp; Added Interface and storage types
Kernel/ObjectFactory.h;
Kernel/StreamBuffer.h;
MessageSvc/MsgStream.h;
NtupleSvc/NTuple.h; Extension for N-tuples to accept pre-selections
NTupleSvc/NTupleImplementation.cpp; dto.
NTupleSvc/NTupleImplementation.h; dto.
NTupleSvc/NTupleItems.cpp; dto.
NTupleSvc/NTupleItems.h; dto.
NTupleSvc/Selector.cpp; Base class for user preselectors
NTupleSvc/Selector.h; dto.
!=======================================================================================
! 20001009 - Vanya Belyaev
(1) Gaudi/Kernel/IInterface.cpp - added definition of IID_IGiGaCnvSvc
and 2 definitions of pseudy-technology types, needed for GiGa
(2) remove obsolete method from IGiGaSvc interface, the functionality of these
method is replaced by GiGa Conversion Sercice
!========================================================================================
! 20001009 - David Quarrie, Pere Mato
- Added the support for "Auditors". The following existing files has been changed:
Algorithm.h (.cpp), ISvcLocator.h, IInterface.cpp
New interfaces: IAuditor.h, IAuditorFactory.h
New classes: Auditor.h (.cpp), AudFactory.h
! ======================================================================================
! 20000731 - Vanya Belyaev
- Gaudi/DetectorDataSvc/DetectorElement.h bug fix
(1) remove empty default constructor (incorrect initialization)
(2) now default construction is not empty!!!
! ======================================================================================
! 20000720 - Gaudi v7
! 20000717 - Radovan Chytracek
- Fixed inheritance order for DetectorElement class + class ID getters
! 20000710 - Gloria Corti
- Introduce the interfaces and base classes for the ToolSvc
new files in Interfaces: IAlgTool.h, IToolFactory.h, IToolSvc.h
new files in Kernel: AlgTool.h, AlgTool.cpp, ToolFactory.h
modified IInterface.cpp (in Kernel) to add the IID for IAlgTool,IToolFactory and
IToolSvc
- requirements: introduce AlgTool.cpp in Gaudilib
- Change obsolete comment in IParticlePropertySvc
! 20000709 - Markus Frank
- Bug fixes for release
- Randm number wrapper as described in the Sotfware week
! 20000704 - Pavel Binko
- Interfaces - the interfaces IAxis, IHistogram and IHistogramSvc
have been enhanced by function :
- returning all edges in a given axis
- setting the histogram title
- allowing to register, unregister, retrieve and find
a histogram in the transient histogram data store
! 20000704 - Marco Cattaneo
- requirements : use LHCbCMT v3r1 (to pick up EXTLIB v2r1)
! 20000630 - Pere Mato
- Removed implementations of initialize(), finalize() and execute()
in Algorithm base class as a response to the e-discussion concerning
the spelling of such methods.
! 20000622 - Vanya Belyaev
- System.cpp : introduce "more correct" coefficient between time clocks and seconds :-))
! 20000622 - Vanya Belyaev
- System.cpp : introduce "correct" coefficient between time clocks and seconds
! 20000621 - Marco Cattaneo
- requirements: insert underscore in name of Gaudi_shlibflags macro,
to please CMT v1r5
! 20000617 - Vanya Belyaev
- Bug fix in Gaudi/System/System.cpp file in method char** System::argv()
! 20000616 - Pere Mato
- Changed Algorithm base class. Added an error counter and max error
limit to allow continuation of trhe program. Default is one.
Added accessor to RndmGenSvc from base class.
! 20000615 - (Pere Mato, David Quarrie)
- Changed interface IAlgorithm and base class Algorithm to support
Algorithm sequences (Babar style). Added some more algorithm flags
(enabled, executed, fileter passed, ...) in base class. Added method
reasetExecuted() in the IAlgorithm interface.
- Changed IProperty interface to support property browsing. Added the
following methods:
const Property& getProperty( const std::string& name ) const = 0;
const std::vector<Property*>& getProperties( ) const = 0;
- Changed base class Property to introduce the possibility of asking
to a property for its type.
- Introduced new classes: PropertyList, CommandProperty
A PropertyList is a Property that contains an array of other properties
A CommandProperty has a callback function associated that is called
when a new value of the property is set.
The PropertyList can handle property nesting. The name convention is
that names are separated by ":".
- Changed PropertyMgr to base its implementation with PropertyList
! 20000609 - (Markus Frank)
- Main improvement:
Implementation of the public part of the random number generator package.
Besides this I **had** to do some code cleanup:
- Algorithm.h: Removed Algorithm::create(...)
Function was declared but never implemented.
- IChronoStatSvc.h: "long double" is not really a ansi data type.
Changed to double.
- IDataManagerSvc.h
IID_IDataManagerSvc_NO_ERROR = SUCCESS becomes
IID_IDataManagerSvc_NO_ERROR = IInterface::SUCCESS
- ITime.h: use longlong data type from kernel.h instead
of __int64 and "long long" + #ifdef.
- PropertyRef.h: Simple typedefs of simple properties.
e.g. typedef SimplePropertyRef<int> IntegerPropertyRef;
just as it is done in "Property.h".
- DataObject.cpp: Actually implement 2 member functions which
were always in the header, but never made it to code.
- Kernel.h: If neither Linux nor WIN32 is the platform,
fix "longlong" to a 64 bit structure capable of holding
the variable.
- StreamBuffer.h: Clean up internal classes ContainedLink and
IdentifiedLink, get rid of macros
- Message.h: There is no such class "ostream". Use #include <iostream> instead;
- MsgStream.h: Added copy constructor
- NTuple.h: Get rid of a few macros and write the proper code instead.
- Get rid of NTupleFile.h and NTupleDirectory.h - should never have
been used at all. The classes were always defined in NTuple.h!
! 20000525
- Fixed template instantiation in Ntuple::Item (For version 6 of Visual C++
- Corrected "OuputLevel" bug in Service.cpp. This would not take into account
a change in the OuputLevel for services.
! 20000523
Markus Frank Make System.cpp compile under VC 6.0 which opposite to VC 5.0
defines STRICT by default.
! 20000410 - Gaudi v6
New EventSelector Interface 06/04/2000
----------------------------------------
Gonzalo Gracia Abril: IEvtSelector.h modified
Gaudi splited into Gaudi and GaudiSvc
-------------------------------------
- Nearly all services moved into the new package GaudiSvc
- Gaudi remains to contain only interfaces, base classes,
DataSvc and ConversionSvc
- Gaudi uses the new package LHCbCMT
(Pavel Binko)
Small correction in Service.cpp/h
---------------------------------
- Added const function messageService() which was
necessary to get a MsgStream in any constant function
(Gonzalo Gracia Abril)
New Functionality
-----------------
- New histogram 1D and 2D interfaces, conforming the AIDA interfaces.
- HistogramSvc changed - the LHCb histogram implementation uses now
the HTL implementation of histograms through the AIDA interfaces.
- HistogramSvc and NTupleSvc changed in order to allow their moving
to the new package GaudiSvc.
! 19991116 - Gaudi v5
New Functionality
-----------------
- Added a output level threshold associated to the clients (services &
algotihms) of the MessageSvc overriding the global threshold.
- New JobOptions service implementation with a new parser.
- Support for N-tuples.
- Support for dynamic library loading
Improvemenets
-------------
- Added interfaces for detector description
- Improved ParticleProperty service. Added index by LundID.
- Modified ApplicationManager to acommonatye other changes
! 19991018 - Gaudi v4r1
New Funtionality
----------------
- Data service and conversion services changed, information about
storage types and class IDs added
- HTL histograms supported
+ New HTL interfaces are the Interfaces directory,
their syntax does not differ from the native HTL syntax
+ Compilation with the HTL library nedds the flag HTL_USE_STD
Changes done by Markus Frank, Pere Mato, Pavel Binko
! 19990812
New Funtionality
----------------
- Support for dynamic link libraries (shareable libraries):
+ Added interface IClassManager with a method called loadModule()
+ Added interface IFactory as a base interface for all factory interfaces
+ Added a FactoryTable static class to support DLLs
+ Modified implemtation of AlgFactory and SvcFactory to use new interfaces
+ Added new property ("DLLs") in ApplicationMgr to set a list of DLL to be loaded at run time
+ Temporary compilation macro to use Gaudi with DDLs (GAUDI_USE_DLL)
Improvements
------------
- Removed "std" from the names of standard services instances.
! ========================================================================
! 19990618 - Gaudi v4
Changes done by Markus Frank, Marco Cattaneo, Paul Maley, Pere Mato
Rado Chytracek, Iain Last, Pavel Binko among others
New Functionality
-----------------
- Support for Detector Descriptions:
New classes: DetDataSvc, DetectorElement
New Interfaces: IgeometryInfo
- Particle Property service:
New classes: ParticleProperty, ParticlePropertySvc
New interfaces: IPartoplePropertySvc
Improvements
------------
- Kernel:
Added classes: GenericAddress, GenericLink
Many changes in base classes to support new functionality.
- Algorithm:
Changed initialization methods (sysInitialize(), sysFinalize())
Added assessors to standards services
- ApplicationMgr:
Changed to support new services (DetDataSvc, ParticlePropertiesSvc,...)
- DataSvc:
Improvements in interfaces. Changed the way to name a DataObject in the store.
Added classes: SmartDataLocator, SmartDataObjectPtr
- MessageSvc:
Added classes GaudiErrorHandler and GaudiNagHandler to
interface NAG C error handling to Gaudi/MessageSvc.
In order to avoid compile time dependency of Gaudi on <nag.h>,
GaudiNagHandler is defined inline. Applications using this
facility must #include "Gaudi/MessageSvc/GaudiNagHandler.h".
Details of usage can be found at:
http://lhcb.cern.ch/~cattanem/LHCb/GaudiNagC.html
- PersistencySvc:
Changed to support two or more conversion services. This was needed to
support the Root conversion service.
Added classes OutputStream, OutputStreamAgent