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