API for accessing control system variables (Process Variables, PVs). See PVFactory to get started.

The actual implementation has to be in another plugin that implements the IPVFactory interface.

There can be more than one implementation, each providing a prefix so that PVs named

 prefix://name
are then created by the PV factory implementation that registred with the corresponding prefix.

Basic idea for the PV 'connect' behavior:

  1. First, it obviously tries to connect to a channel.
  2. When that suceeds, and we thus know the native type etc. of the channel, it requests meta information (units, precision, ...).
  3. When receiving that, it subscribes to updates of timestamp/value/status
  4. When receiving the first subscription update, we declare the PV fully 'connected'.
Consequently, users of this API get the full value and meta information without having to worry about details.