General changes
The new IS version provides a possibility now to subscribe for
information types and also for a combination of an information type and
regular expression for information names. The same possibility exists
for the ISInfoIterator, i.e. one can enumerate for example all the
objects of a particular type. The new API is backward compatible, i.e.
the old code should compile and run as before.
A new utility called is_rm has been implemented to provide a way of
removing information from IS servers. The utility is provided as a patch
to the release.
Changes in API
Below there are some examples, which show how to use the new
subscription facilities:
IPCPartition p(partition_name);
ISInfoReceiver receiver(p);
std::string criteria( ".*1" );
Old style subscription:
Receiver->subscribe( server_name, criteria, callback_function );
Subscribe for information type, which
is called LargeInfo (LargeIngo is a class, which was generated by the
is_generator utility):
ISType type = LargeInfo::type();
receiver->subscribe( server_name, type, callback_function );
Subscribe for any information of the
LargeInfo type with the name, which ends with '1':
ISType type = LargeInfo::type();
receiver->subscribe( server_name, type && criteria, callback_function );
Subscribe for any information which
either has name, which ends with '1' or is of the LargeInfo type:
ISType type = LargeInfo::type();
receiver->subscribe( server_name, type || criteria, callback_function );
Subscribe for any information of any
but NOT the LargeInfo type with the name, which ends with '1':
ISType type = LargeInfo::type();
receiver->subscribe( server_name, !type && criteria, callback_function );
Subscribe for any information, which
ends with '1' and has a type, which is a SUBTYPE OF the LargeInfo type:
ISType type = LargeInfo::type();
receiver->subscribe( server_name, ~type && criteria, callback_function );
The same techniques applies also to the ISInfoIterator class, i.e. it
is possible to enumerate all the objects of a certain IS type or a
combination of the IS type and object name.
To be implemented