Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
S
spdlog
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
spdlog
Commits
a9a73090
Commit
a9a73090
authored
6 years ago
by
gabime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed dist_sink.h
parent
72f4fae2
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.1
v1.3.0
v1.2.1
v1.2.0
v1.1.0
v1.0.0
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
15 deletions
+15
-15
dist_sink.h
include/spdlog/sinks/dist_sink.h
+15
-15
No files found.
include/spdlog/sinks/dist_sink.h
View file @
a9a73090
...
...
@@ -7,7 +7,6 @@
#include "spdlog/details/log_msg.h"
#include "spdlog/details/null_mutex.h"
#include "spdlog/sink/base_sink.h"
#include <algorithm>
#include <memory>
...
...
@@ -18,22 +17,18 @@
namespace
spdlog
{
namespace
sinks
{
template
<
class
Mutex
>
class
dist_sink
:
public
base_sink
<
Mutex
>
template
<
typename
Mutex
>
class
dist_sink
:
public
sink
{
public
:
explicit
dist_sink
()
:
sinks_
()
{
}
dist_sink
()
=
default
;
dist_sink
(
const
dist_sink
&
)
=
delete
;
dist_sink
&
operator
=
(
const
dist_sink
&
)
=
delete
;
protected
:
std
::
vector
<
std
::
shared_ptr
<
sink
>>
sinks_
;
void
sink_it_
(
const
details
::
log_msg
&
msg
)
override
void
log
(
const
details
::
log_msg
&
msg
)
SPDLOG_FINAL
override
{
std
::
lock_guard
<
Mutex
>
lock
(
mutex_
);
for
(
auto
&
sink
:
sinks_
)
{
if
(
sink
->
should_log
(
msg
.
level
))
...
...
@@ -43,24 +38,29 @@ protected:
}
}
void
flush
_
()
override
void
flush
()
SPDLOG_FINAL
override
{
std
::
lock_guard
<
Mutex
>
lock
(
mutex_
);
for
(
auto
&
sink
:
sinks_
)
sink
->
flush
();
}
public
:
void
add_sink
(
std
::
shared_ptr
<
sink
>
sink
)
{
std
::
lock_guard
<
Mutex
>
lock
(
base_sink
<
Mutex
>::
mutex_
);
std
::
lock_guard
<
Mutex
>
lock
(
mutex_
);
sinks_
.
push_back
(
sink
);
}
void
remove_sink
(
std
::
shared_ptr
<
sink
>
sink
)
{
std
::
lock_guard
<
Mutex
>
lock
(
base_sink
<
Mutex
>::
mutex_
);
std
::
lock_guard
<
Mutex
>
lock
(
mutex_
);
sinks_
.
erase
(
std
::
remove
(
sinks_
.
begin
(),
sinks_
.
end
(),
sink
),
sinks_
.
end
());
}
private
:
Mutex
mutex_
;
std
::
vector
<
std
::
shared_ptr
<
sink
>>
sinks_
;
};
using
dist_sink_mt
=
dist_sink
<
std
::
mutex
>
;
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment