Expand Macros, Fix Repetition: DataSetWr

nix
Owen Green 5 years ago
parent c6cd158f53
commit 50af1fefd5

@ -19,17 +19,33 @@
namespace fluid {
namespace client {
namespace datasetwr {
enum { kDataSet, kIDPrefix, kIDNumber, kBuffer };
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),
BufferParam("buf", "Data Buffer"));
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"),
StringParam("idPrefix", "ID Prefix"),
LongArrayParam("idNumber", "ID Counter Offset",
idNumberDefaults),
BufferParam("buf", "Data Buffer"));
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) {}
@ -43,7 +59,7 @@ public:
if (idPrefix.size() == 0 && idNumberArr[0] == 0)
return {Result::Status::kError, "No ID supplied"};
std::string id = idPrefix;
std::string id = idPrefix;
if (idNumberArr[0] > 0)
id += std::to_string(idNumberArr[1]);
@ -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

Loading…
Cancel
Save