Class EpicsChannelMetadataService

java.lang.Object
ch.psi.wica.controlsystem.epics.metadata.EpicsChannelMetadataService

@Service @ThreadSafe public class EpicsChannelMetadataService extends Object
A service which establishes EPICS CA monitors on user-specified channels of interest, subsequently publishing the information from each monitor update to interested consumers within the application.
  • Constructor Details

    • EpicsChannelMetadataService

      public EpicsChannelMetadataService(@Autowired EpicsChannelMetadataPublisher epicsChannelMetadataPublisher)
      Constructs a new instance.
      Parameters:
      epicsChannelMetadataPublisher - an object which can be used to get the channel metadata.
  • Method Details

    • getStatistics

      public EpicsChannelMetadataStatistics getStatistics()
      Returns the statistics associated with this service.
      Returns:
      the statistics.
    • startDataAcquisition

      public void startDataAcquisition(EpicsChannelMetadataRequest requestObject)
      Starts acquiring metadata for the EPICS control system channel specified by the supplied request object.

      The EPICS channel may or may not be online when this method is invoked. The connection-state-change event will be published when the connection to the remote IOC is eventually established. Subsequently, the value-change event will be published to provide the latest value of the channel.

      Parameters:
      requestObject - the request specification object.
      Throws:
      NullPointerException - if the 'requestObject' argument was null.
      IllegalStateException - if this service was previously closed.
      IllegalStateException - if the 'requestObject' was already active.
    • stopDataAcquisition

      public void stopDataAcquisition(EpicsChannelMetadataRequest requestObject)
      Stops acquiring metadata for the EPICS control system channel specified by the supplied request object.
      Parameters:
      requestObject - the request specification object.
      Throws:
      NullPointerException - if the 'requestObject' argument was null.
      IllegalStateException - if this service was previously closed.
      IllegalStateException - if the 'requestObject' was not recognised.
    • close

      public void close()
      Closes the service.