PPS supports multiple publishers that publish to the same PPS object. This capability is required because different publishers may have access to data that applies to different attributes for the same object.
For example, in a multimedia system with a PlayCurrent object, io-media may be the source of a time::value attribute, while the HMI may be the source of a duration::value attribute. A publisher that changes only the time attribute will update only that attribute when it writes to the object. It will leave the other attributes unchanged.
In the example above, suppose the PlayCurrent object has the following attribute values:
@PlayCurrent author::Beatles album::Abbey Road title::Come Together duration::3.45 time::1.24
If io-media updated the time attribute of the PlayCurrent object as follows:
// Update the "time" attribute sprintf( ppsobj, "time::2.32\n" ); write( ppsobj-fd, ppsobj, strlen( ppsobj ) );
and then the HMI updated the duration attribute as follows:
// Update the "duration" attribute sprintf( ppsobj, "duration::4.02\n" ); write( ppsobj-fd, ppsobj, strlen( ppsobj ) );
The result would be:
@PlayCurrent author::Beatles album::Abbey Road title::Come Together duration::4.02 time::2.32
For another example, see Publishers in the Examples appendix.