Changes in the ISInfoDynAny API
- The ISInfoDynAny(
const ISType & type ) constructor has been removed,
so the only way to construct the ISInfoDynAny
object is to use the default constructor. One can use ISInfoDynAny
object to read any information from the IS repository without a need of
getting the type of the information from the repository beforehand. So
the code like:
ISInfoDictionary dict(ipcPartition);
ISType type;
dict.getType(eventsSourceInfo_, type);
ISInfoDynAny isInfo(type);
dict.getValue(eventsSourceInfo_, isInfo);
shall be changed to something like:
ISInfoDictionary dict(ipcPartition);
ISInfoDynAny isInfo;
dict.getValue(eventsSourceInfo_, isInfo);
- All methods which require IPCPartition parameter has been removed
from the ISInfoDynAny class (they have been marked as deprecated
already in the tdaq-02-00-03 release). One can use their counterparts,
which are exactly the same except that they don't require IPCPartition
object been given as parameter. For example instead of writing:
currentEvents = isInfo.getAttributeValue<int> (ipcPartition, eventsSourceName_);
one shall simply use:
currentEvents = isInfo.getAttributeValue<int> (eventsSourceName_);
- New constructor has been added to the ISInfoDynAny class:
ISInfoDynAny( const IPCPartition & partition, const std::string & type_name ) ;
It constructs the object of the IS type whose name is given as
paramater. Throws daq::is::DocumentNotFound exception if the type with
the given name is not known to the IS meta-data repository. This
constructor can be used to dynamically create and publish to IS objects
whose types are not known at compilation time.