14#include <unordered_map>
22#define M_PI 3.14159265358979323846
66 static std::map<std::string, std::unique_ptr<InternalLogger>> self_map;
68 constexpr static std::uint32_t internal_log_size = 0x200000;
69 std::mutex internal_log_mutex;
91 const std::string& str2,
void* userData,
96 if (InternalLogger::self_map.find(name) == InternalLogger::self_map.end()) {
97 InternalLogger::self_map.insert(
98 {name, std::make_unique<InternalLogger>()});
99 InternalLogger::self_map.at(name).get()->name = name;
100 InternalLogger::self_map.at(name).get()->type = 0;
101 InternalLogger::self_map.at(name).get()->assertEqCallback =
nullptr;
102 InternalLogger::self_map.at(name).get()->m_pop =
true;
104 return InternalLogger::self_map.at(name).get();
107 static void setType(
const std::string& name, uint32_t type) {
108 InternalLogger::self_map.at(name).get()->type = type;
121 void log(
const loguru::Message& message) {
122 std::unique_lock<std::mutex> lk(internal_log_mutex);
130 auto pos =
g_internal_log.find_first_of(
'\n', internal_log_size >> 3u);
133 }
else if (type == 1) {
136 logIndVec.push_back(message.indentation);
140 for (
size_t i = 0; i < loopSize; i++) {
162 static std::string&
get_log(
const std::string& name) {
164 std::unique_lock<std::mutex> lk(pil->internal_log_mutex);
171 const loguru::Message& message) {
177 const std::string& str1,
178 const std::string& str2,
void* userData,
Manages communication and control for an external autotuning process.
Definition standalone_autotuning.h:271
bool g_eol_mode
Definition global.cc:34
std::string g_driver_name
Definition global.cc:18
std::vector< std::recursive_mutex > g_soem_mailbox_mutexes
Definition global.cc:27
std::string g_soem_mac_address
Definition global.cc:25
uint16_t g_pub_sub_port
Definition global.cc:23
std::vector< std::string > g_ethernet_ip_addresses
Definition global.cc:48
uint8 g_pIOmap[4096]
Definition global.cc:14
size_t g_mock_devices
Definition global.cc:31
std::string g_templates_path
Definition global.cc:32
std::atomic< int > g_slavecount
Definition global.cc:28
volatile sig_atomic_t g_sig_caught
Definition global.cc:16
std::atomic< bool > g_pdo_mapping_in_progress
Definition global.cc:29
std::string g_ethernet_pdo_mode
Definition global.cc:49
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
MasterType
Definition global.h:34
@ kUnspecified
Definition global.h:34
@ kSoem
Definition global.h:34
@ kMock
Definition global.h:34
@ kSpoe
Definition global.h:34
void g_soem_update_slavecount()
Definition global.cc:38
StandaloneAutotuning g_standalone_autotuning
Logging class.
Definition global.h:64
void setAssertEqCallback(void(*func)(const std::string &pre, const std::string &str1, const std::string &str2, void *userData, int &retval))
Definition global.h:176
static void log_to_internal_log(void *user_data, const loguru::Message &message)
Definition global.h:170
bool m_pop
Definition global.h:88
void log(const loguru::Message &message)
Callback from loguru.
Definition global.h:121
void clearPop()
Definition global.h:190
std::deque< void * > assertEqUserDataQue
Definition global.h:86
std::vector< std::string > logPreVec
Definition global.h:78
std::deque< std::string > assertEqStrQue
Definition global.h:85
void resetState()
Definition global.h:192
std::string g_internal_log_copy
Definition global.h:76
static std::string & get_log(const std::string &name)
Definition global.h:162
static void setType(const std::string &name, uint32_t type)
Definition global.h:107
void(* assertEqCallback)(const std::string &pre, const std::string &str1, const std::string &str2, void *userData, int &retval)
Definition global.h:90
std::vector< std::string > logIndVec
Definition global.h:82
static InternalLogger * getInstance(const std::string &name)
Definition global.h:95
std::vector< std::string > logMsgVec
Definition global.h:80
std::string g_internal_log
Definition global.h:75
void setPop()
Definition global.h:189
void pushAssertEq(const std::string &str, void *userData=nullptr)
Definition global.h:184