27 #if defined(__linux) || defined(__APPLE__)
33 #include <ngraph/ngraph_visibility.hpp>
40 template <
size_t SIZE>
47 constexpr
char operator[](
size_t i)
const
49 return i < m_size ? m_string[i] :
throw std::out_of_range(
"");
51 constexpr
const char* get_ptr(
size_t offset)
const {
return &m_string[offset]; }
52 constexpr
size_t size()
const {
return m_size; }
58 constexpr
const char* find_last(
ConstString s,
size_t offset,
char ch)
60 return offset == 0 ? s.get_ptr(0) : (s[offset] == ch ? s.get_ptr(offset + 1)
61 : find_last(s, offset - 1, ch));
64 constexpr
const char* find_last(ConstString s,
char ch)
66 return find_last(s, s.size() - 1, ch);
69 constexpr
const char* get_file_name(ConstString s) {
return find_last(s,
'/'); }
70 constexpr
const char* trim_file_name(ConstString root, ConstString s)
72 return s.get_ptr(root.size());
88 std::function<
void(
const std::string&)> m_handler_func);
91 std::ostream& stream() {
return m_stream; }
93 std::function<void(
const std::string&)> m_handler_func;
94 std::stringstream m_stream;
102 static void set_log_path(
const std::string& path);
107 static void log_item(
const std::string& s);
108 static void process_event(
const std::string& s);
109 static void thread_entry(
void* param);
110 static std::string m_log_path;
111 static std::deque<std::string> m_queue;
115 void default_logger_handler_func(
const std::string& s);
118 ngraph::LogHelper(ngraph::LOG_TYPE::_LOG_TYPE_ERROR, \
119 ngraph::trim_file_name(PROJECT_ROOT_DIR, __FILE__), \
121 ngraph::default_logger_handler_func) \
124 #define NGRAPH_WARN \
125 ngraph::LogHelper(ngraph::LOG_TYPE::_LOG_TYPE_WARNING, \
126 ngraph::trim_file_name(PROJECT_ROOT_DIR, __FILE__), \
128 ngraph::default_logger_handler_func) \
131 #define NGRAPH_INFO \
132 ngraph::LogHelper(ngraph::LOG_TYPE::_LOG_TYPE_INFO, \
133 ngraph::trim_file_name(PROJECT_ROOT_DIR, __FILE__), \
135 ngraph::default_logger_handler_func) \
138 #ifdef NGRAPH_DEBUG_ENABLE
139 #define NGRAPH_DEBUG \
140 ngraph::LogHelper(ngraph::LOG_TYPE::_LOG_TYPE_DEBUG, \
141 ngraph::trim_file_name(PROJECT_ROOT_DIR, __FILE__), \
143 ngraph::default_logger_handler_func) \
151 template <
typename T>
154 return std::move(logger);
157 template <
typename T>
158 NullLogger&& operator<<(NullLogger&& logger,
const T&)
160 return std::move(logger);
164 operator<<(NullLogger&& logger,
165 std::basic_ostream<
char, std::char_traits<char>>& (&)(std::basic_ostream<
167 std::char_traits<char>>&))
169 return std::move(logger);
172 #define NGRAPH_DEBUG \
173 ::ngraph::NullLogger {}
The Intel nGraph C++ API.
Definition: attribute_adapter.hpp:28