summaryrefslogtreecommitdiff
path: root/implementation/logging/include/dlt_sink_backend.hpp
blob: 73a9e79f0885bcfc0a58ab011e28f4aa8f5caff1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright (C) 2014-2017 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef VSOMEIP_V3_DLT_SINK_BACKEND_HPP_
#define VSOMEIP_V3_DLT_SINK_BACKEND_HPP_

#ifdef USE_DLT
#include <dlt/dlt.h>
#endif

#include <boost/log/core.hpp>
#include <boost/log/sinks/basic_sink_backend.hpp>
#include <boost/log/trivial.hpp>

namespace logging = boost::log;
namespace sinks = boost::log::sinks;

namespace vsomeip_v3 {

class dlt_sink_backend :
    public sinks::basic_sink_backend<
        sinks::combine_requirements<
            sinks::synchronized_feeding
        >::type
    > {
public:
    dlt_sink_backend(const std::string &_app_id,
                     const std::string &_context_id);
    virtual ~dlt_sink_backend();

    void consume(const logging::record_view &rec);

private:

#ifdef USE_DLT
    DltLogLevelType level_as_dlt(logging::trivial::severity_level _level);
    DLT_DECLARE_CONTEXT(dlt_)
#endif
};

} // namespace vsomeip_v3

#endif // VSOMEIP_V3_DLT_SINK_BACKEND_HPP_