#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace fluid { namespace client { class DataSetWriterClient : public FluidBaseClient, OfflineIn, OfflineOut { public: FLUID_DECLARE_PARAMS(StringParam("label", "Label"), BufferParam("buf", "Data Buffer"), DataSetClientRef::makeParam("dataSet", "DataSet Name")); DataSetWriterClient(ParamSetViewType& p) : mParams(p) {} template Result process(FluidContext&) { auto& idx = get<0>(); auto buf = get<1>(); auto dataset = get<2>().get(); if (auto datasetPtr = dataset.lock()) return datasetPtr->addPoint(idx, buf); else return {Result::Status::kError, "No dataset"}; } }; using NRTThreadedDataSetWriter = NRTThreadingAdaptor>; } // namespace client } // namespace fluid