12#include "MantidKernel/DllConfig.h"
48 virtual const std::string
id()
const = 0;
50 virtual const std::string &
getName()
const = 0;
54 virtual const std::string
toString()
const = 0;
63 Poco::RWLock *getLock()
const;
68 std::unique_ptr<Poco::RWLock>
m_lock;
Base class from which all concrete algorithm classes should be derived.
This class forms the base class of any item that wishes to be stored in the analysis data service.
virtual const std::string & getName() const =0
The name of the object.
virtual ~DataItem()
Destructor.
virtual const std::string toString() const =0
Serializes the object to a string.
virtual const std::string id() const =0
A string ID for the class.
virtual bool threadSafe() const =0
Can this object be accessed from multiple threads safely.
std::unique_ptr< Poco::RWLock > m_lock
Multiple-reader/single-writer lock to restrict multithreaded access to the data item.
Scoped, read-only lock for thread-safe access to DataItems.
Scoped write-lock for thread-safe access to DataItems.
std::shared_ptr< const DataItem > DataItem_const_sptr
Shared pointer to a const DataItem.
std::shared_ptr< DataItem > DataItem_sptr
Shared pointer to a DataItem.
Helper class which provides the Collimation Length for SANS instruments.