22class InterfaceWorkerVillas :
public InterfaceWorker,
26 using Ptr = std::shared_ptr<InterfaceWorkerVillas>;
27 using Sample =
struct node::Sample;
29 static UInt villasPriority;
30 static UInt villasAffinity;
31 static UInt villasHugePages;
34 static Bool villasInitialized;
37 std::tuple<std::function<CPS::AttributeBase::Ptr(Sample *)>, UInt>>
39 std::vector<std::tuple<std::function<void(CPS::AttributeBase::Ptr, Sample *)>,
49 node::Pool mSamplePool;
54 std::map<int, node::Signal::Ptr> mExportSignals;
55 std::map<int, node::Signal::Ptr> mImportSignals;
58 InterfaceWorkerVillas(
59 const String &nodeConfig, UInt queueLenght = 512, UInt sampleLenght = 64,
60 spdlog::level::level_enum logLevel = spdlog::level::level_enum::info);
63 void close()
override;
66 std::vector<InterfaceQueued::AttributePacket> &updatedAttrs)
override;
68 std::vector<std::tuple<CPS::AttributeBase::Ptr, UInt, bool, bool>>
71 std::vector<InterfaceQueued::AttributePacket> &updatedAttrs)
override;
73 std::vector<std::tuple<CPS::AttributeBase::Ptr, UInt>> &updatedAttrs);
75 virtual void configureImport(UInt attributeId,
const std::type_info &type,
76 UInt idx,
const String &name =
"",
77 const String &unit =
"");
78 virtual void configureExport(UInt attributeId,
const std::type_info &type,
79 UInt idx, Bool waitForOnWrite,
80 const String &name =
"",
81 const String &unit =
"");
83 void printSignals()
const;
87 void setupNodeSignals();
88 void initVillas()
const;