14#include <unordered_map>
22#define M_PI 3.14159265358979323846
60 static std::map<std::string, std::unique_ptr<InternalLogger>> self_map;
62 constexpr static std::uint32_t internal_log_size = 0x200000;
63 std::mutex internal_log_mutex;
85 const std::string& str2,
void* userData,
90 if (InternalLogger::self_map.find(
name) == InternalLogger::self_map.end()) {
91 InternalLogger::self_map.insert(
92 {
name, std::make_unique<InternalLogger>()});
93 InternalLogger::self_map.at(
name).get()->name =
name;
94 InternalLogger::self_map.at(
name).get()->type = 0;
95 InternalLogger::self_map.at(
name).get()->assertEqCallback =
nullptr;
96 InternalLogger::self_map.at(
name).get()->m_pop =
true;
98 return InternalLogger::self_map.at(
name).get();
101 static void setType(
const std::string& name, uint32_t type) {
102 InternalLogger::self_map.at(
name).get()->type =
type;
115 void log(
const loguru::Message& message) {
116 std::unique_lock<std::mutex> lk(internal_log_mutex);
124 auto pos =
g_internal_log.find_first_of(
'\n', internal_log_size >> 3u);
127 }
else if (
type == 1) {
130 logIndVec.push_back(message.indentation);
134 for (
size_t i = 0; i < loopSize; i++) {
156 static std::string&
get_log(
const std::string& name) {
158 std::unique_lock<std::mutex> lk(pil->internal_log_mutex);
165 const loguru::Message& message) {
171 const std::string& str1,
172 const std::string& str2,
void* userData,
Manages communication and control for an external autotuning process.
Definition: standalone_autotuning.h:239
uint8_t type
Definition: co_dictionary.h:1
const char ** name
Definition: co_dictionary.h:7
bool g_eol_mode
Definition: global.cc:34
MasterType
Definition: global.h:32
std::string g_soem_mac_address
Definition: global.cc:25
uint16_t g_pub_sub_port
Definition: global.cc:23
uint8 g_pIOmap[4096]
Definition: global.cc:16
size_t g_mock_devices
Definition: global.cc:31
std::vector< std::mutex > g_soem_mailbox_mutexes
Definition: global.cc:27
void g_soem_update_slavecount()
Definition: global.cc:38
std::string g_templates_path
Definition: global.cc:32
volatile sig_atomic_t g_sig_caught
Definition: global.cc:18
std::atomic< bool > g_pdo_mapping_in_progress
Definition: global.cc:29
std::atomic< int > g_soem_slavecount
Definition: global.cc:28
MasterType g_master_type
Definition: global.cc:20
uint16_t g_req_res_port
Definition: global.cc:22
std::string g_soem_ifname
Definition: global.cc:26
StandaloneAutotuning g_standalone_autotuning
Logging class.
Definition: global.h:57
void setAssertEqCallback(void(*func)(const std::string &pre, const std::string &str1, const std::string &str2, void *userData, int &retval))
Definition: global.h:170
static void log_to_internal_log(void *user_data, const loguru::Message &message)
Definition: global.h:164
bool m_pop
Definition: global.h:82
void log(const loguru::Message &message)
Callback from loguru.
Definition: global.h:115
void clearPop()
Definition: global.h:184
std::deque< void * > assertEqUserDataQue
Definition: global.h:80
std::vector< std::string > logPreVec
Definition: global.h:72
std::deque< std::string > assertEqStrQue
Definition: global.h:79
void resetState()
Definition: global.h:186
std::string g_internal_log_copy
Definition: global.h:70
static std::string & get_log(const std::string &name)
Definition: global.h:156
static void setType(const std::string &name, uint32_t type)
Definition: global.h:101
void(* assertEqCallback)(const std::string &pre, const std::string &str1, const std::string &str2, void *userData, int &retval)
Definition: global.h:84
std::vector< std::string > logIndVec
Definition: global.h:76
static InternalLogger * getInstance(const std::string &name)
Definition: global.h:89
std::vector< std::string > logMsgVec
Definition: global.h:74
std::string g_internal_log
Definition: global.h:69
void setPop()
Definition: global.h:183
void pushAssertEq(const std::string &str, void *userData=nullptr)
Definition: global.h:178