"Framework/Kernel/src/DiskBuffer.cpp" did not exist on "ed3b4a2f56531b4121a0968403663d492f69ba52"
Newer
Older
#ifndef MANTID_KERNEL_ITIMESERIESPROPERTY_H_
#define MANTID_KERNEL_ITIMESERIESPROPERTY_H_
namespace Kernel {
//---------------------------------------------------------------------------
// Forward Declarations
//---------------------------------------------------------------------------
class SplittingInterval;
class TimeInterval;
/** A non-templated interface to a TimeSeriesProperty.
Copyright © 2012 ISIS Rutherford Appleton Laboratory, NScD Oak Ridge
National Laboratory & European Spallation Source
This file is part of Mantid.
Mantid is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
Mantid is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
public:
/// Fill a TimeSplitterType that will filter the events by matching
virtual void makeFilterByValue(std::vector<SplittingInterval> &split,
double min, double max, double TimeTolerance,
bool centre = true) const = 0;
/// Make sure an existing filter covers the full time range given
virtual void expandFilterToRange(std::vector<SplittingInterval> &split,
double min, double max,
const TimeInterval &range) const = 0;
// Provide a new instance of the ITimeSeriesProperty with shifted time values
// After trying to use return type covariance, but that showed Error C2908
// Using property seemed to be the most straightforward solution.
virtual Property *cloneWithTimeShift(const double timeShift) const = 0;
/// Calculate the time-weighted average of a property in a filtered range
virtual double
averageValueInFilter(const std::vector<SplittingInterval> &filter) const = 0;
/// Return the time series's times as a vector<DateAndTime>
virtual std::vector<Types::Core::DateAndTime> timesAsVector() const = 0;
/// Returns the calculated time weighted average value
virtual double timeAverageValue() const = 0;
/// Returns the real size of the time series property map:
virtual int realSize() const = 0;
/// Deletes the series of values in the property
virtual void clear() = 0;
/// Deletes all but the 'last entry' in the property
virtual void clearOutdated() = 0;
/// Virtual destructor
virtual ~ITimeSeriesProperty() = default;
};
} // namespace Kernel
} // namespace Mantid
#endif /*MANTID_KERNEL_ITIMESERIESPROPERTY_H_*/