RTI Routing Service Version 7.6.0
LogConfig.hpp
1/*
2 (c) Copyright, Real-Time Innovations, 2017-
3 All rights reserved.
4
5 No duplications, whole or partial, manual or electronic, may be made without
6 express written permission. Any such copies, or revisions thereof, must
7 display this notice unaltered.
8
9 This code contains trade secrets of Real-Time Innovations, Inc.
10*/
11
12#ifndef HPP_ROUTING_LOG_LOG_CONFIG_HPP_
13#define HPP_ROUTING_LOG_LOG_CONFIG_HPP_
14
15#include <cstdio>
16#include <cstdarg>
17
18#include "log/log_common.h"
19#include "routingservice/routingservice_log.h"
20
21#include "ndds/ndds_config_c.h"
22
23
24namespace rti { namespace routing { namespace log {
25
26class LogConfig {
27public:
28 static rti::routing::log::LogConfig& instance()
29 {
30 static rti::routing::log::LogConfig singleton;
31 return singleton;
32 }
33
34 // Deleted constructor to avoid multiple instances.
35 LogConfig(const LogConfig&) = delete;
36 LogConfig(LogConfig&&) = delete;
37
38 RTILogBitmap instrumentation_mask() const
39 {
40 NDDS_Config_LogVerbosity verbosity =
41 NDDS_Config_Logger_get_verbosity_by_service(
42 NDDS_Config_Logger_get_instance(),
43 NDDS_CONFIG_LOG_SERVICE_ROUTING);
44 return (RTILogBitmap) verbosity;
45 }
46
47 LogConfig& instrumentation_mask(RTILogBitmap logmask)
48 {
49 NDDS_Config_Logger_set_verbosity_by_service(
50 NDDS_Config_Logger_get_instance(),
51 NDDS_CONFIG_LOG_SERVICE_ROUTING,
52 (NDDS_Config_LogVerbosity) logmask);
53 return *this;
54 }
55
56 void router_instrumentation_mask(RTILogBitmap logmask)
57 {
58 instrumentation_mask(logmask);
59 }
60
61 void update_native(RTILogBitmap logmask)
62 {
63 router_instrumentation_mask(logmask);
64 }
65
66private:
67 // Constructor is private: this class is a singleton
68 LogConfig() = default;
69};
70
71}}} // rti::routing::log
72
73#endif /* HPP_ROUTING_LOG_LOG_CONFIG_HPP_ */