##// END OF EJS Templates
Added core wrapper meson build def...
Added core wrapper meson build def Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r76:9a080a34054c
r80:0c2e5a797af5
Show More
TimeSeriesUtils.h
41 lines | 1.4 KiB | text/x-c | CLexer
#ifndef TIMESERIESUTILS_H
#define TIMESERIESUTILS_H
#include "MultiComponentTimeSerie.h"
#include "ScalarTimeSerie.h"
#include "SpectrogramTimeSerie.h"
#include "VectorTimeSerie.h"
#include <TimeSeries.h>
#include <memory>
namespace TimeSeriesUtils
{
template<typename T> TimeSeries::ITimeSerie* copy(T input_ts)
{
if constexpr(std::is_base_of_v<TimeSeries::ITimeSerie, T>)
{
if(auto ts = dynamic_cast<VectorTimeSerie*>(input_ts))
{ return new VectorTimeSerie(*ts); }
if(auto ts = dynamic_cast<ScalarTimeSerie*>(input_ts))
{ return new ScalarTimeSerie(*ts); }
if(auto ts = dynamic_cast<MultiComponentTimeSerie*>(input_ts))
{ return new MultiComponentTimeSerie(*ts); }
if(auto ts = dynamic_cast<SpectrogramTimeSerie*>(input_ts))
{ return new SpectrogramTimeSerie(*ts); }
}
else
{
if(auto ts = std::dynamic_pointer_cast<VectorTimeSerie>(input_ts))
{ return new VectorTimeSerie(*ts); }
if(auto ts = std::dynamic_pointer_cast<ScalarTimeSerie>(input_ts))
{ return new ScalarTimeSerie(*ts); }
if(auto ts = std::dynamic_pointer_cast<SpectrogramTimeSerie>(input_ts))
{ return new SpectrogramTimeSerie(*ts); }
if(auto ts = std::dynamic_pointer_cast<MultiComponentTimeSerie>(input_ts))
{ return new MultiComponentTimeSerie(*ts); }
}
return nullptr;
}
} // namespace TimeSeriesUtils
#endif