14#include <unordered_map>
22#define M_PI 3.14159265358979323846
64 static std::map<std::string, std::unique_ptr<InternalLogger>> self_map;
66 constexpr static std::uint32_t internal_log_size = 0x200000;
67 std::mutex internal_log_mutex;
89 const std::string& str2,
void* userData,
94 if (InternalLogger::self_map.find(
name) == InternalLogger::self_map.end()) {
95 InternalLogger::self_map.insert(
96 {
name, std::make_unique<InternalLogger>()});
97 InternalLogger::self_map.at(
name).get()->name =
name;
98 InternalLogger::self_map.at(
name).get()->type = 0;
99 InternalLogger::self_map.at(
name).get()->assertEqCallback =
nullptr;
100 InternalLogger::self_map.at(
name).get()->m_pop =
true;
102 return InternalLogger::self_map.at(
name).get();
105 static void setType(
const std::string& name, uint32_t type) {
106 InternalLogger::self_map.at(
name).get()->type =
type;
119 void log(
const loguru::Message& message) {
120 std::unique_lock<std::mutex> lk(internal_log_mutex);
128 auto pos =
g_internal_log.find_first_of(
'\n', internal_log_size >> 3u);
131 }
else if (
type == 1) {
134 logIndVec.push_back(message.indentation);
138 for (
size_t i = 0; i < loopSize; i++) {
160 static std::string&
get_log(
const std::string& name) {
162 std::unique_lock<std::mutex> lk(pil->internal_log_mutex);
169 const loguru::Message& message) {
175 const std::string& str1,
176 const std::string& str2,
void* userData,
Manages communication and control for an external autotuning process.
Definition: standalone_autotuning.h:269
uint8_t type
Definition: co_dictionary.h:1
const char ** name
Definition: co_dictionary.h:7
bool g_eol_mode
Definition: global.cc:32
MasterType
Definition: global.h:32
std::vector< std::recursive_mutex > g_soem_mailbox_mutexes
Definition: global.cc:25
std::string g_soem_mac_address
Definition: global.cc:23
uint16_t g_pub_sub_port
Definition: global.cc:21
std::vector< std::string > g_ethernet_ip_addresses
Definition: global.cc:46
uint8 g_pIOmap[4096]
Definition: global.cc:14
size_t g_mock_devices
Definition: global.cc:29
void g_soem_update_slavecount()
Definition: global.cc:36
std::string g_templates_path
Definition: global.cc:30
std::atomic< int > g_slavecount
Definition: global.cc:26
volatile sig_atomic_t g_sig_caught
Definition: global.cc:16
std::atomic< bool > g_pdo_mapping_in_progress
Definition: global.cc:27
MasterType g_master_type
Definition: global.cc:18
uint16_t g_req_res_port
Definition: global.cc:20
std::string g_soem_ifname
Definition: global.cc:24
StandaloneAutotuning g_standalone_autotuning
Logging class.
Definition: global.h:61
void setAssertEqCallback(void(*func)(const std::string &pre, const std::string &str1, const std::string &str2, void *userData, int &retval))
Definition: global.h:174
static void log_to_internal_log(void *user_data, const loguru::Message &message)
Definition: global.h:168
bool m_pop
Definition: global.h:86
void log(const loguru::Message &message)
Callback from loguru.
Definition: global.h:119
void clearPop()
Definition: global.h:188
std::deque< void * > assertEqUserDataQue
Definition: global.h:84
std::vector< std::string > logPreVec
Definition: global.h:76
std::deque< std::string > assertEqStrQue
Definition: global.h:83
void resetState()
Definition: global.h:190
std::string g_internal_log_copy
Definition: global.h:74
static std::string & get_log(const std::string &name)
Definition: global.h:160
static void setType(const std::string &name, uint32_t type)
Definition: global.h:105
void(* assertEqCallback)(const std::string &pre, const std::string &str1, const std::string &str2, void *userData, int &retval)
Definition: global.h:88
std::vector< std::string > logIndVec
Definition: global.h:80
static InternalLogger * getInstance(const std::string &name)
Definition: global.h:93
std::vector< std::string > logMsgVec
Definition: global.h:78
std::string g_internal_log
Definition: global.h:73
void setPop()
Definition: global.h:187
void pushAssertEq(const std::string &str, void *userData=nullptr)
Definition: global.h:182