9#include "MantidAPI/DllConfig.h"
28template <
class KEYTYPE,
class VALUETYPE>
class Cache;
48 static std::string getInvalidValuesFilterLogName(
const std::string &logName);
59 void setStartAndEndTime(
const Types::Core::DateAndTime &start,
const Types::Core::DateAndTime &end);
61 const Types::Core::DateAndTime startTime()
const;
63 const Types::Core::DateAndTime endTime()
const;
67 virtual void filterByTime(
const Types::Core::DateAndTime start,
const Types::Core::DateAndTime stop);
72 const std::vector<std::string> &excludedFromFiltering = std::vector<std::string>());
75 virtual size_t getMemorySize()
const;
80 addProperty(std::unique_ptr<Kernel::Property>(prop), overwrite);
83 void addProperty(std::unique_ptr<Kernel::Property> prop,
bool overwrite =
false);
85 template <
class TYPE>
void addProperty(
const std::string &name,
const TYPE &
value,
bool overwrite =
false);
88 void addProperty(
const std::string &name,
const TYPE &
value,
const std::string &units,
bool overwrite =
false);
91 bool hasProperty(
const std::string &name)
const;
93 void removeProperty(
const std::string &name,
bool delProperty =
true);
94 const std::vector<Kernel::Property *> &getProperties()
const;
101 template <
typename HeldType> HeldType getPropertyValueAsType(
const std::string &name)
const;
103 double getPropertyAsSingleValue(
const std::string &name,
106 int getPropertyAsIntegerValue(
const std::string &name)
const;
122 void addLogData(std::unique_ptr<Kernel::Property> p,
bool overwrite =
false) { addProperty(std::move(p), overwrite); }
134 const std::vector<Kernel::Property *> &
getLogData()
const {
return getProperties(); }
140 void removeLogData(
const std::string &name,
const bool delproperty =
true) {
141 return removeProperty(name, delproperty);
151 return getPropertyAsSingleValue(name, statistic);
155 double getTimeAveragedStd(
const std::string &name)
const;
158 void clearTimeSeriesLogs();
160 void clearOutdatedTimeSeriesLogValues();
163 virtual void saveNexus(::NeXus::File *file,
const std::string &group,
bool keepOpen =
false)
const;
175 virtual void loadNexus(::NeXus::File *file,
const std::string &group,
177 bool keepOpen =
false);
179 virtual void loadNexus(::NeXus::File *file,
const std::string &group,
bool keepOpen =
false);
184 bool hasInvalidValuesFilter(
const std::string &logName)
const;
196 void loadNexus(::NeXus::File *file,
const std::map<std::string, std::string> &entries);
205 std::unique_ptr<Kernel::Cache<std::pair<std::string, Kernel::Math::StatisticType>,
double>>
m_singleValueCache;
234 auto newProp = std::make_unique<Kernel::PropertyWithValue<TYPE>>(name,
value);
235 newProp->setUnits(units);
double value
The value of the point.
This class contains the information about the log entries.
void addLogData(Kernel::Property *p)
Add a log entry.
const std::vector< Kernel::Property * > & getLogData() const
Access all log entries.
std::unique_ptr< Kernel::PropertyManager > m_manager
A pointer to a property manager.
virtual ~LogManager()
Destructor.
static const char * PROTON_CHARGE_LOG_NAME
Name of the log entry containing the proton charge when retrieved using getProtonCharge.
Kernel::Property * getLogData(const std::string &name) const
Access a single log entry.
std::unique_ptr< Kernel::Cache< std::pair< std::string, Kernel::Math::StatisticType >, double > > m_singleValueCache
Cache for the retrieved single values.
void addProperty(Kernel::Property *prop, bool overwrite=false)
Add data to the object in the form of a property.
void addLogData(std::unique_ptr< Kernel::Property > p, bool overwrite=false)
Add a log entry.
double getLogAsSingleValue(const std::string &name, Kernel::Math::StatisticType statistic=Kernel::Math::Mean) const
void removeLogData(const std::string &name, const bool delproperty=true)
Remove a named log entry.
Cache is a generic caching storage class.
Property manager helper class.
The concrete, templated class for properties.
Base class for properties.
Class holding a start/end time and a destination for splitting event lists and logs.
A specialised Property class for holding a series of time-value pairs.
std::shared_ptr< const LogManager > LogManager_const_sptr
shared pointer to the logManager base class (const version)
std::shared_ptr< LogManager > LogManager_sptr
shared pointer to the logManager base class
StatisticType
Maps a "statistic" to a number.
std::vector< SplittingInterval > TimeSplitterType
A typedef for splitting events according their pulse time.
Helper class which provides the Collimation Length for SANS instruments.
constexpr bool operator==(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)
constexpr bool operator!=(const wide_integer< Bits, Signed > &lhs, const wide_integer< Bits2, Signed2 > &rhs)