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;