ONE - On-device Neural Engine
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
w
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
a
b
c
d
e
f
i
k
l
m
n
o
p
q
r
s
t
u
Enumerator
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
u
v
w
y
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Enumerations
a
c
d
e
f
g
i
k
l
m
o
p
r
s
t
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Related Symbols
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
Variables
_
b
c
d
f
g
i
k
m
n
o
p
s
t
v
Typedefs
a
d
f
g
i
l
m
n
o
s
t
u
v
Enumerations
f
g
n
o
p
r
Enumerator
a
k
n
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
logging.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#ifndef __ONERT_UTIL_LOGGING_H__
18
#define __ONERT_UTIL_LOGGING_H__
19
20
#include <iostream>
21
#include <cstring>
22
23
#include "
util/ConfigSource.h
"
24
25
namespace
onert::util::logging
26
{
27
28
class
Context
29
{
30
public
:
31
Context
() noexcept : _enabled{
false
}
32
{
33
const
auto
env =
util::getConfigBool
(util::config::ONERT_LOG_ENABLE);
34
35
if
(env)
36
{
37
_enabled =
true
;
38
}
39
}
31
Context
() noexcept : _enabled{
false
} {
…
}
40
41
static
Context
&
get
() noexcept;
42
43
public:
44
bool
enabled
(
void
)
const
{
return
_enabled; }
45
46
private
:
47
bool
_enabled;
48
};
28
class
Context
{
…
};
49
50
static
inline
Context &ctx =
Context::get
();
51
52
inline
std::string
decorated_name
(
const
char
*input)
53
{
54
const
int
min_prefix = 16;
55
std::string prefix(input);
56
auto
len_prefix = prefix.size();
57
if
(len_prefix > min_prefix)
58
return
"["
+ prefix +
"] "
;
59
std::string spaces((min_prefix - len_prefix) / 2,
' '
);
60
return
(len_prefix % 2 ?
"[ "
:
"["
) + spaces + prefix + spaces +
"] "
;
61
}
52
inline
std::string
decorated_name
(
const
char
*input) {
…
}
62
63
}
// namespace onert::util::logging
25
namespace
onert::util::logging
{
…
}
64
65
#define VERBOSE(name) \
66
if (::onert::util::logging::ctx.enabled()) \
67
std::cout << ::onert::util::logging::decorated_name(#name)
65
#define VERBOSE(name) \
…
68
69
#define VERBOSE_F() \
70
if (::onert::util::logging::ctx.enabled()) \
71
std::cout << ::onert::util::logging::decorated_name(__func__)
69
#define VERBOSE_F() \
…
72
73
#define WHEN_LOG_ENABLED(METHOD) \
74
if (::onert::util::logging::ctx.enabled()) \
75
do \
76
{ \
77
METHOD; \
78
} while (0)
73
#define WHEN_LOG_ENABLED(METHOD) \
…
79
80
#define MEASURE_TIME_START(name) \
81
do \
82
{ \
83
auto beg_##name = std::chrono::steady_clock::now()
80
#define MEASURE_TIME_START(name) \
…
84
85
#define MEASURE_TIME_END(name) \
86
auto end_##name = std::chrono::steady_clock::now(); \
87
auto dur_##name = \
88
std::chrono::duration_cast<std::chrono::microseconds>(end_##name - beg_##name); \
89
if (::onert::util::logging::ctx.enabled()) \
90
std::cout << ::onert::util::logging::decorated_name(__func__) << #name \
91
<< " time = " << dur_##name.count() << std::endl; \
92
} \
93
while (0)
85
#define MEASURE_TIME_END(name) \
…
94
95
#endif
// __ONERT_UTIL_LOGGING_H__
ConfigSource.h
onert::util::logging::Context
Definition
logging.h:29
onert::util::logging::Context::get
static Context & get() noexcept
Definition
logging.cc:19
onert::util::logging::Context::Context
Context() noexcept
Definition
logging.h:31
onert::util::logging::Context::enabled
bool enabled(void) const
Definition
logging.h:44
onert::util::logging
Definition
logging.h:26
onert::util::logging::decorated_name
std::string decorated_name(const char *input)
Definition
logging.h:52
onert::util::getConfigBool
bool getConfigBool(const std::string &key)
Definition
ConfigSource.cc:118
runtime
onert
core
include
util
logging.h
Generated by
1.9.8