blob: 1a9b4569e2a35b2f4cfc081e333178b4832d8256 [file] [log] [blame]
Andrei Litvindc8d5eb2023-06-01 16:23:33 -04001/*
2 *
3 * Copyright (c) 2023 Project CHIP Authors
4 * All rights reserved.
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18#pragma once
19
Andrei Litvin2ac97772023-06-20 12:13:46 -040020#include <matter/tracing/build_config.h>
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040021
Andrei Litvind3564842023-06-23 12:30:50 -040022#if MATTER_TRACING_ENABLED
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040023
Andrei Litvin2ac97772023-06-20 12:13:46 -040024// Expected macros provided by implementations:
25// MATTER_TRACE_BEGIN(label, group)
26// MATTER_TRACE_END(label, group)
27// MATTER_TRACE_INSTANT(label, group)
Andrei Litvind3564842023-06-23 12:30:50 -040028// MATTER_TRACE_SCOPE(label, group)
shripad621gita422b7a2024-02-12 18:36:13 +053029
30// Tracing macro to trace monotonically increasing counter values.
31// MATTER_TRACE_COUNTER(label)
32
Andrei Litvin2ac97772023-06-20 12:13:46 -040033#include <matter/tracing/macros_impl.h>
Andrei Litvind3564842023-06-23 12:30:50 -040034#include <tracing/log_declares.h>
35#include <tracing/registry.h>
Andrei Litvin2ac97772023-06-20 12:13:46 -040036
37////////////////////// DATA LOGGING
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040038
39#define MATTER_LOG_MESSAGE_SEND(...) \
40 do \
41 { \
Andrei Litvin00b522f2023-06-13 11:32:16 -040042 ::chip::Tracing::MessageSendInfo _trace_data{ __VA_ARGS__ }; \
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040043 ::chip::Tracing::Internal::LogMessageSend(_trace_data); \
44 } while (false)
45
46#define MATTER_LOG_MESSAGE_RECEIVED(...) \
47 do \
48 { \
Andrei Litvin00b522f2023-06-13 11:32:16 -040049 ::chip::Tracing::MessageReceivedInfo _trace_data{ __VA_ARGS__ }; \
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040050 ::chip::Tracing::Internal::LogMessageReceived(_trace_data); \
51 } while (false)
52
53#define MATTER_LOG_NODE_LOOKUP(...) \
54 do \
55 { \
Andrei Litvin00b522f2023-06-13 11:32:16 -040056 ::chip::Tracing::NodeLookupInfo _trace_data{ __VA_ARGS__ }; \
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040057 ::chip::Tracing::Internal::LogNodeLookup(_trace_data); \
58 } while (false)
59
60#define MATTER_LOG_NODE_DISCOVERED(...) \
61 do \
62 { \
Andrei Litvin00b522f2023-06-13 11:32:16 -040063 ::chip::Tracing::NodeDiscoveredInfo _trace_data{ __VA_ARGS__ }; \
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040064 ::chip::Tracing::Internal::LogNodeDiscovered(_trace_data); \
65 } while (false)
66
67#define MATTER_LOG_NODE_DISCOVERY_FAILED(...) \
68 do \
69 { \
Andrei Litvin00b522f2023-06-13 11:32:16 -040070 ::chip::Tracing::NodeDiscoveryFailedInfo _trace_data{ __VA_ARGS__ }; \
Andrei Litvindc8d5eb2023-06-01 16:23:33 -040071 ::chip::Tracing::Internal::LogNodeDiscoveryFailed(_trace_data); \
72 } while (false)
73
Andrei Litvind3564842023-06-23 12:30:50 -040074#else // MATTER_TRACING_ENABLED
75
76#define _MATTER_TRACE_DISABLE(...) \
77 do \
78 { \
79 } while (false)
80
81#define MATTER_TRACE_BEGIN(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
82#define MATTER_TRACE_END(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
83#define MATTER_TRACE_INSTANT(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
84#define MATTER_TRACE_SCOPE(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
shripad621git446088c2024-02-02 21:53:20 +053085#define MATTER_TRACE_COUNTER(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
Andrei Litvind3564842023-06-23 12:30:50 -040086
87#define MATTER_LOG_MESSAGE_SEND(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
88#define MATTER_LOG_MESSAGE_RECEIVED(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
89
90#define MATTER_LOG_NODE_LOOKUP(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
91#define MATTER_LOG_NODE_DISCOVERED(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
92#define MATTER_LOG_NODE_DISCOVERY_FAILED(...) _MATTER_TRACE_DISABLE(__VA_ARGS__)
93
94#endif // MATTER_TRACING_ENABLED