Mantid
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
Mantid::API::ILiveListener Class Referenceabstract

ILiveListener is the interface implemented by classes which connect directly to instrument data acquisition systems (DAS) for retrieval of 'live' data into Mantid. More...

#include <ILiveListener.h>

Inheritance diagram for Mantid::API::ILiveListener:
Mantid::Kernel::PropertyManager Mantid::Kernel::IPropertyManager Mantid::API::LiveListener

Public Types

enum  RunStatus { NoRun = 0 , BeginRun = 1 , Running = 2 , EndRun = 4 }
 The possible run statuses (initial list taken from SNS SMS protocol) None : No current run Begin : A new run has begun since the last call to extractData Running : We are in a run End : The run has ended since the last call to extractData. More...
 

Public Member Functions

virtual bool buffersEvents () const =0
 Does this listener buffer events (true) or histogram data (false) More...
 
virtual bool connect (const Poco::Net::SocketAddress &address)=0
 Connect to the specified address and start listening/buffering. More...
 
virtual bool dataReset ()=0
 Indicates that a reset (or period change?) signal has been received from the DAS. More...
 
virtual std::shared_ptr< WorkspaceextractData ()=0
 Get the data that's been buffered since the last call to this method (or since start() was called). More...
 
virtual bool isConnected ()=0
 Has the connection to the DAS been established? Could also be used to check for a continued connection. More...
 
virtual std::string name () const =0
 The name of this listener. More...
 
virtual int runNumber () const =0
 Returns the run number of the current run. More...
 
virtual ILiveListener::RunStatus runStatus ()=0
 Gets the current run status of the listened-to data stream. More...
 
virtual void setAlgorithm (const class IAlgorithm &callingAlgorithm)=0
 Allow listener to see calling algorithm. More...
 
virtual void setSpectra (const std::vector< specnum_t > &specList)=0
 Sets a list of spectra to be extracted. More...
 
virtual void start (Types::Core::DateAndTime startTime=Types::Core::DateAndTime())=0
 Commence the collection of data from the DAS. More...
 
virtual bool supportsHistory () const =0
 Does this listener support requests for (recent) past data. More...
 
- Public Member Functions inherited from Mantid::Kernel::PropertyManager
::Json::Value asJson (bool withDefaultValues=false) const override
 Return the property manager serialized as a json object. More...
 
std::string asString (bool withDefaultValues=false) const override
 Return the property manager serialized as a string. More...
 
void clear () override
 Clears the whole property map. More...
 
void declareOrReplaceProperty (std::unique_ptr< Property > p, const std::string &doc="") override
 Add or replace a property in the list of managed properties. More...
 
void declareProperty (const std::string &name, const char *value, const std::string &doc, IValidator_sptr validator=std::make_shared< NullValidator >(), const unsigned int direction=Direction::Input)
 Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More...
 
void declareProperty (const std::string &name, const char *value, const unsigned int direction)
 Add a property of string type to the list of managed properties. More...
 
void declareProperty (const std::string &name, const char *value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc=std::string(), const unsigned int direction=Direction::Input)
 Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More...
 
template<typename T >
void declareProperty (const std::string &name, T value, const std::string &doc, const unsigned int direction=Direction::Input)
 Add a property to the list of managed properties with no validator. More...
 
template<typename T >
void declareProperty (const std::string &name, T value, const unsigned int direction)
 Add a property of the template type to the list of managed properties. More...
 
template<typename T >
void declareProperty (const std::string &name, T value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc="", const unsigned int direction=Direction::Input)
 Add a property of the template type to the list of managed properties. More...
 
void declareProperty (std::unique_ptr< Property > p, const std::string &doc="") override
 Add a property to the list of managed properties. More...
 
virtual void declareProperty (std::unique_ptr< Property > p, const std::string &doc="")=0
 Function to declare properties (i.e. store them) More...
 
bool existsProperty (const std::string &name) const override
 Checks whether the named property is already in the list of managed property. More...
 
void filterByProperty (const TimeSeriesProperty< bool > &filter, const std::vector< std::string > &excludedFromFiltering=std::vector< std::string >()) override
 Filter the managed properties by the given boolean property mask. More...
 
void filterByTime (const Types::Core::DateAndTime &start, const Types::Core::DateAndTime &stop) override
 Filter out a run by time. More...
 
std::vector< std::string > getDeclaredPropertyNames () const noexcept override
 Return the list of declared property names. More...
 
PropertygetPointerToProperty (const std::string &name) const override
 Get a property by name. More...
 
const std::vector< Property * > & getProperties () const override
 Get the list of managed properties. More...
 
TypedValue getProperty (const std::string &name) const override
 Get the value of a property. More...
 
std::string getPropertyValue (const std::string &name) const override
 Get the value of a property as a string. More...
 
bool operator!= (const PropertyManager &other) const
 
PropertyManageroperator+= (const PropertyManager &rhs)
 Addition operator. More...
 
PropertyManageroperator= (const PropertyManager &)
 Assignment operator - performs a deep copy. More...
 
bool operator== (const PropertyManager &other) const
 
size_t propertyCount () const override
 Count the number of properties under management. More...
 
 PropertyManager ()
 Default constructor. More...
 
 PropertyManager (const PropertyManager &)
 copy constructor More...
 
void removeProperty (const std::string &name, const bool delproperty=true) override
 removes the property from properties map More...
 
void resetProperties () override
 Reset property values back to initial values (blank or default values) More...
 
void setProperties (const ::Json::Value &jsonValue, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false) override
 Set the ordered list of properties by a json value collection. More...
 
void setProperties (const ::Json::Value &jsonValue, IPropertyManager *targetPropertyManager, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false)
 Set the ordered list of properties by a json value collection. More...
 
void setProperties (const std::string &propertiesJson, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false) override
 Set the ordered list of properties by one string of values, separated by semicolons. More...
 
void setProperties (const std::string &propertiesJson, IPropertyManager *targetPropertyManager, const std::unordered_set< std::string > &ignoreProperties, bool createMissing=false)
 Set the ordered list of properties by one string of values, separated by semicolons. More...
 
void setPropertiesWithString (const std::string &propertiesString, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >()) override
 Sets all the declared properties from a string. More...
 
void setPropertyOrdinal (const int &index, const std::string &value) override
 Set the value of a property by an index N.B. More...
 
void setPropertyValue (const std::string &name, const std::string &value) override
 Set the value of a property by string N.B. More...
 
void setPropertyValueFromJson (const std::string &name, const Json::Value &value) override
 Set the value of a property by Json::Value. More...
 
void splitByTime (std::vector< SplittingInterval > &splitter, std::vector< PropertyManager * > outputs) const override
 Split a run by time (splits the TimeSeriesProperties contained). More...
 
std::unique_ptr< PropertytakeProperty (const size_t index) override
 removes the property from the properties map and returns a pointer to it More...
 
bool validateProperties () const override
 Validates all the properties in the collection. More...
 
virtual ~PropertyManager () override
 Virtual destructor. More...
 
- Public Member Functions inherited from Mantid::Kernel::IPropertyManager
virtual ::Json::Value asJson (bool withDefaultValues=false) const =0
 Return the property manager serialized as a json object. More...
 
virtual std::string asString (bool withDefaultValues=false) const =0
 Return the property manager serialized as a string. More...
 
virtual void declareOrReplaceProperty (std::unique_ptr< Property > p, const std::string &doc="")=0
 Function to declare properties (i.e. store them) More...
 
void declareProperty (const std::string &name, const char *value, const std::string &doc, IValidator_sptr validator=std::make_shared< NullValidator >(), const unsigned int direction=Direction::Input)
 Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More...
 
void declareProperty (const std::string &name, const char *value, const unsigned int direction)
 Add a property of string type to the list of managed properties. More...
 
void declareProperty (const std::string &name, const char *value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc=std::string(), const unsigned int direction=Direction::Input)
 Specialised version of declareProperty template method to prevent the creation of a PropertyWithValue of type const char* if an argument in quotes is passed (it will be converted to a string). More...
 
template<typename T >
void declareProperty (const std::string &name, T value, const std::string &doc, const unsigned int direction=Direction::Input)
 Add a property to the list of managed properties with no validator. More...
 
template<typename T >
void declareProperty (const std::string &name, T value, const unsigned int direction)
 Add a property of the template type to the list of managed properties. More...
 
template<typename T >
void declareProperty (const std::string &name, T value, IValidator_sptr validator=std::make_shared< NullValidator >(), const std::string &doc="", const unsigned int direction=Direction::Input)
 Add a property of the template type to the list of managed properties. More...
 
virtual void declareProperty (std::unique_ptr< Property > p, const std::string &doc="")=0
 Function to declare properties (i.e. store them) More...
 
virtual bool existsProperty (const std::string &name) const =0
 Checks whether the named property is already in the list of managed property. More...
 
virtual void filterByProperty (const TimeSeriesProperty< bool > &, const std::vector< std::string > &)=0
 
virtual void filterByTime (const Types::Core::DateAndTime &, const Types::Core::DateAndTime &)=0
 
virtual std::vector< std::string > getDeclaredPropertyNames () const noexcept=0
 Get the list of managed property names. More...
 
virtual PropertygetPointerToProperty (const std::string &name) const =0
 Get a pointer to property by name. More...
 
virtual const std::vector< Property * > & getProperties () const =0
 Get the list of managed properties. More...
 
std::vector< Property * > getPropertiesInGroup (const std::string &group) const
 Get the list of managed properties in a given group. More...
 
virtual TypedValue getProperty (const std::string &name) const =0
 Get the value of a property. More...
 
virtual std::string getPropertyValue (const std::string &name) const =0
 Get the value of a property as a string. More...
 
virtual size_t propertyCount () const =0
 Returns the number of properties under management. More...
 
virtual void removeProperty (const std::string &name, const bool delproperty=true)=0
 Removes the property from management. More...
 
virtual void resetProperties ()=0
 
virtual void setProperties (const ::Json::Value &jsonValue, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false)=0
 Sets all the properties from a json object. More...
 
virtual void setProperties (const std::string &propertiesJson, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >(), bool createMissing=false)=0
 Sets all properties from a string. More...
 
virtual void setPropertiesWithString (const std::string &propertiesString, const std::unordered_set< std::string > &ignoreProperties=std::unordered_set< std::string >())=0
 Sets all the declared properties from a string. More...
 
IPropertyManagersetProperty (const std::string &name, const char *value)
 Specialised version of setProperty template method to handle const char *. More...
 
IPropertyManagersetProperty (const std::string &name, const std::string &value)
 Specialised version of setProperty template method to handle std::string. More...
 
template<typename T >
IPropertyManagersetProperty (const std::string &name, const T &value)
 Templated method to set the value of a PropertyWithValue. More...
 
template<typename T >
IPropertyManagersetProperty (const std::string &name, std::unique_ptr< T > value)
 Templated method to set the value of a PropertyWithValue from a std::unique_ptr. More...
 
void setPropertyGroup (const std::string &name, const std::string &group)
 Set the group for a given property. More...
 
virtual void setPropertyOrdinal (const int &index, const std::string &value)=0
 Set the value of a property by an index. More...
 
void setPropertySettings (const std::string &name, std::unique_ptr< IPropertySettings > settings)
 
virtual void setPropertyValue (const std::string &name, const std::string &value)=0
 Sets property value from a string. More...
 
virtual void setPropertyValueFromJson (const std::string &name, const Json::Value &value)=0
 Sets property value from a Json::Value. More...
 
virtual void splitByTime (std::vector< SplittingInterval > &, std::vector< PropertyManager * >) const =0
 
virtual std::unique_ptr< PropertytakeProperty (const size_t index)=0
 Removes the property from management and returns a pointer to it. More...
 
void updatePropertyValues (const IPropertyManager &other)
 Update values of the existing properties. More...
 
virtual bool validateProperties () const =0
 Validates all the properties in the collection. More...
 
virtual ~IPropertyManager ()=default
 

Additional Inherited Members

- Static Public Member Functions inherited from Mantid::Kernel::PropertyManager
static std::string getInvalidValuesFilterLogName (const std::string &logName)
 Gets the correct log name for the matching invalid values log for a given log name. More...
 
static std::string getLogNameFromInvalidValuesFilter (const std::string &logName)
 
static bool isAnInvalidValuesFilterLog (const std::string &logName)
 
- Static Public Attributes inherited from Mantid::Kernel::PropertyManager
static const std::string INVALID_VALUES_SUFFIX = "_invalid_values"
 
- Protected Member Functions inherited from Mantid::Kernel::PropertyManager
PropertygetPointerToPropertyOrdinal (const int &index) const override
 Get a property by an index. More...
 
PropertygetPointerToPropertyOrNull (const std::string &name) const
 Get a property by name. More...
 
- Protected Member Functions inherited from Mantid::Kernel::IPropertyManager
virtual void afterPropertySet (const std::string &)
 Override this method to perform a custom action right after a property was set. More...
 
virtual void clear ()=0
 Clears all properties under management. More...
 
virtual PropertygetPointerToPropertyOrdinal (const int &index) const =0
 Get a property by an index. More...
 
template<typename T >
getValue (const std::string &name) const
 Templated method to get the value of a property. More...
 
template<>
MANTID_KERNEL_DLL PropertyManager_sptr getValue (const std::string &name) const
 
template<>
MANTID_KERNEL_DLL PropertyManager_const_sptr getValue (const std::string &name) const
 

Detailed Description

ILiveListener is the interface implemented by classes which connect directly to instrument data acquisition systems (DAS) for retrieval of 'live' data into Mantid.

Definition at line 31 of file ILiveListener.h.

Member Enumeration Documentation

◆ RunStatus

The possible run statuses (initial list taken from SNS SMS protocol) None : No current run Begin : A new run has begun since the last call to extractData Running : We are in a run End : The run has ended since the last call to extractData.

Enumerator
NoRun 
BeginRun 
Running 
EndRun 

Definition at line 113 of file ILiveListener.h.

Member Function Documentation

◆ buffersEvents()

virtual bool Mantid::API::ILiveListener::buffersEvents ( ) const
pure virtual

Does this listener buffer events (true) or histogram data (false)

◆ connect()

virtual bool Mantid::API::ILiveListener::connect ( const Poco::Net::SocketAddress &  address)
pure virtual

Connect to the specified address and start listening/buffering.

Parameters
addressThe IP address and port to contact
Returns
True if the connection was successfully established

◆ dataReset()

virtual bool Mantid::API::ILiveListener::dataReset ( )
pure virtual

Indicates that a reset (or period change?) signal has been received from the DAS.

An example is the SNS SMS (!) statistics reset packet. A concrete listener should discard any buffered events on receipt of such a signal. It is the client's responsibility to call this method, if necessary, prior to extracting the data. Calling this method resets the flag.

Implemented in Mantid::API::LiveListener.

◆ extractData()

virtual std::shared_ptr< Workspace > Mantid::API::ILiveListener::extractData ( )
pure virtual

Get the data that's been buffered since the last call to this method (or since start() was called).

This method should never return an empty shared pointer, and a given instance of a listener should return a workspace of the same dimension every time. The implementation should reset its internal buffer when this method is called

  • the returned workspace is for the caller to do with as they wish. IF THIS METHOD IS CALLED BEFORE start() THEN THE RESULTS ARE UNDEFINED!!!
    Returns
    A pointer to the workspace containing the buffered data.
    Exceptions
    LiveData::Exception::NotYetIf the listenere is not yet ready to return a workspace. This exception will be caught by LoadLiveData, which will call extractData() again a short while later. Any other exception will stop the calling algorithm.

◆ isConnected()

virtual bool Mantid::API::ILiveListener::isConnected ( )
pure virtual

Has the connection to the DAS been established? Could also be used to check for a continued connection.

◆ name()

virtual std::string Mantid::API::ILiveListener::name ( ) const
pure virtual

The name of this listener.

◆ runNumber()

virtual int Mantid::API::ILiveListener::runNumber ( ) const
pure virtual

Returns the run number of the current run.

◆ runStatus()

virtual ILiveListener::RunStatus Mantid::API::ILiveListener::runStatus ( )
pure virtual

Gets the current run status of the listened-to data stream.

Returns
A value of the RunStatus enumeration indicating the present status

◆ setAlgorithm()

virtual void Mantid::API::ILiveListener::setAlgorithm ( const class IAlgorithm callingAlgorithm)
pure virtual

Allow listener to see calling algorithm.

Parameters
callingAlgorithm: const ref to calling algorithm

Implemented in Mantid::API::LiveListener.

◆ setSpectra()

virtual void Mantid::API::ILiveListener::setSpectra ( const std::vector< specnum_t > &  specList)
pure virtual

Sets a list of spectra to be extracted.

Parameters
specList:: A vector with spectra indices.

Implemented in Mantid::API::LiveListener.

◆ start()

virtual void Mantid::API::ILiveListener::start ( Types::Core::DateAndTime  startTime = Types::Core::DateAndTime())
pure virtual

Commence the collection of data from the DAS.

Must be called before extractData(). This method facilitates requesting an historical startpoint. Implementations that don't support this may simply start collecting data when the connect() method is called (indeed this may be required by some protocols).

Parameters
startTimeThe timestamp of the earliest data requested (default: now). Ignored if not supported by an implementation. The value of 'now' is zero The value of 'start of run' is 1 second for compatibility with the SNS live stream and ISIS Kafka live stream.

◆ supportsHistory()

virtual bool Mantid::API::ILiveListener::supportsHistory ( ) const
pure virtual

Does this listener support requests for (recent) past data.


The documentation for this class was generated from the following file: