GBP: add allowed ethertypes to contracts
[vpp.git] / extras / vom / vom / hw.cpp
index 0952b60..54f0aa2 100644 (file)
@@ -16,6 +16,7 @@
 #include "vom/hw.hpp"
 #include "vom/hw_cmds.hpp"
 #include "vom/logger.hpp"
+#include "vom/stat_reader.hpp"
 
 namespace VOM {
 HW::cmd_q::cmd_q()
@@ -170,6 +171,11 @@ HW::cmd_q::write()
  * The single Command Queue
  */
 HW::cmd_q* HW::m_cmdQ;
+
+/*
+ * single stat reader
+ */
+stat_reader* HW::m_statReader;
 HW::item<bool> HW::m_poll_state;
 
 /**
@@ -179,6 +185,17 @@ void
 HW::init(HW::cmd_q* f)
 {
   m_cmdQ = f;
+  m_statReader = new stat_reader();
+}
+
+/**
+ * Initialse the connection to VPP
+ */
+void
+HW::init(HW::cmd_q* f, stat_reader* s)
+{
+  m_cmdQ = f;
+  m_statReader = s;
 }
 
 /**
@@ -188,6 +205,7 @@ void
 HW::init()
 {
   m_cmdQ = new cmd_q();
+  m_statReader = new stat_reader();
 }
 
 void
@@ -211,12 +229,13 @@ HW::enqueue(std::queue<cmd*>& cmds)
 bool
 HW::connect()
 {
-  return m_cmdQ->connect();
+  return (m_cmdQ->connect() && m_statReader->connect());
 }
 
 void
 HW::disconnect()
 {
+  m_statReader->disconnect();
   m_cmdQ->disconnect();
 }
 
@@ -249,6 +268,12 @@ HW::poll()
   return (m_poll_state);
 }
 
+void
+HW::read_stats()
+{
+  m_statReader->read();
+}
+
 template <>
 std::string
 HW::item<bool>::to_string() const