|
|
|
|
@ -19,18 +19,34 @@
|
|
|
|
|
|
|
|
|
|
namespace fluid {
|
|
|
|
|
namespace client {
|
|
|
|
|
namespace datasetwr {
|
|
|
|
|
|
|
|
|
|
class DataSetWriterClient : public FluidBaseClient, OfflineIn, OfflineOut {
|
|
|
|
|
enum { kDataSet, kIDPrefix, kIDNumber, kBuffer };
|
|
|
|
|
static constexpr std::initializer_list<index> idNumberDefaults{0, 0};
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
FLUID_DECLARE_PARAMS(DataSetClientRef::makeParam("dataSet", "DataSet ID"),
|
|
|
|
|
constexpr std::initializer_list<index> idNumberDefaults{0, 0};
|
|
|
|
|
|
|
|
|
|
constexpr auto DataSetWrParams = defineParameters(
|
|
|
|
|
DataSetClientRef::makeParam("dataSet", "DataSet ID"),
|
|
|
|
|
StringParam("idPrefix", "ID Prefix"),
|
|
|
|
|
LongArrayParam("idNumber", "ID Counter Offset",
|
|
|
|
|
idNumberDefaults),
|
|
|
|
|
LongArrayParam("idNumber", "ID Counter Offset", idNumberDefaults),
|
|
|
|
|
BufferParam("buf", "Data Buffer"));
|
|
|
|
|
|
|
|
|
|
class DataSetWriterClient : public FluidBaseClient, OfflineIn, OfflineOut {
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
using ParamDescType = decltype(DataSetWrParams);
|
|
|
|
|
|
|
|
|
|
using ParamSetViewType = ParameterSetView<ParamDescType>;
|
|
|
|
|
std::reference_wrapper<ParamSetViewType> mParams;
|
|
|
|
|
|
|
|
|
|
void setParams(ParamSetViewType &p) { mParams = p; }
|
|
|
|
|
|
|
|
|
|
template <size_t N> auto &get() const {
|
|
|
|
|
return mParams.get().template get<N>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static constexpr auto &getParameterDescriptors() { return DataSetWrParams; }
|
|
|
|
|
|
|
|
|
|
DataSetWriterClient(ParamSetViewType &p) : mParams(p) {}
|
|
|
|
|
|
|
|
|
|
template <typename T> Result process(FluidContext &) {
|
|
|
|
|
@ -54,8 +70,9 @@ public:
|
|
|
|
|
return {Result::Status::kError, "No DataSet"};
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
} // namespace datasetwr
|
|
|
|
|
|
|
|
|
|
using NRTThreadedDataSetWriter =
|
|
|
|
|
NRTThreadingAdaptor<ClientWrapper<DataSetWriterClient>>;
|
|
|
|
|
NRTThreadingAdaptor<ClientWrapper<datasetwr::DataSetWriterClient>>;
|
|
|
|
|
} // namespace client
|
|
|
|
|
} // namespace fluid
|
|
|
|
|
|