50        std::vector<crow::websocket::connection*> m_conns;
 
   59            socket.can_receive_any();
 
   61        void b_transport(tlm::tlm_generic_payload& 
txn, sc_core::sc_time& 
t)
 
   65            char* 
ptr = (
char*)
txn.get_data_ptr();
 
   66            std::string data(
ptr, 
txn.get_data_length());
 
   67            buffer = (buffer + data);
 
   68            if (buffer.size() > MAX_BUFFER) buffer = buffer.substr(buffer.size() - MAX_BUFFER);
 
   69            for (
auto conn : m_conns) {
 
   70                conn->send_text(data);
 
   73        void enqueue(std::string data)
 
   80            : socket(sc_core::sc_gen_unique_name(
"monitor_biflow_backend")), name(
n)
 
   82            socket.register_b_transport(
this, &biflow_ws::b_transport);
 
   85        void set_conn(crow::websocket::connection* 
c)
 
   90        void clear_conn(crow::websocket::connection* 
c)
 
   92            auto i = std::find(m_conns.begin(), m_conns.end(), 
c);
 
   93            if (
i != m_conns.end()) {
 
   98    std::map<std::string, std::unique_ptr<biflow_ws>> biflows;
 
  101    monitor(
const sc_core::sc_module_name& 
nm);
 
  108    void before_end_of_elaboration() 
override;
 
  110    void end_of_elaboration() 
override;
 
  112    void end_of_simulation() 
override;
 
  115    cci::cci_param<uint32_t> p_server_port;
 
  116    cci::cci_param<std::string> p_html_doc_template_dir_path;
 
  117    cci::cci_param<std::string> p_html_doc_name;
 
  118    cci::cci_param<bool> p_use_html_presentation;
 
  121    crow::SimpleApp m_app;
 
  122    std::future<void> m_app_future;
 
  124    std::vector<tlm_quantumkeeper_multithread*> m_qks;