xref: /aosp_15_r20/external/libchrome-gestures/include/logging.h (revision aed3e5085e770be5b69ce25295ecf6ddf906af95)
1*aed3e508SAndroid Build Coastguard Worker // Copyright 2012 The ChromiumOS Authors
2*aed3e508SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*aed3e508SAndroid Build Coastguard Worker // found in the LICENSE file.
4*aed3e508SAndroid Build Coastguard Worker 
5*aed3e508SAndroid Build Coastguard Worker #ifndef GESTURES_LOGGING_H__
6*aed3e508SAndroid Build Coastguard Worker #define GESTURES_LOGGING_H__
7*aed3e508SAndroid Build Coastguard Worker 
8*aed3e508SAndroid Build Coastguard Worker #include "gestures.h"
9*aed3e508SAndroid Build Coastguard Worker 
10*aed3e508SAndroid Build Coastguard Worker #define Assert(condition) \
11*aed3e508SAndroid Build Coastguard Worker   do { \
12*aed3e508SAndroid Build Coastguard Worker     if (!(condition)) \
13*aed3e508SAndroid Build Coastguard Worker       Err("Assertion '" #condition "' failed"); \
14*aed3e508SAndroid Build Coastguard Worker   } while(false)
15*aed3e508SAndroid Build Coastguard Worker 
16*aed3e508SAndroid Build Coastguard Worker #define AssertWithReturn(condition) \
17*aed3e508SAndroid Build Coastguard Worker   do { \
18*aed3e508SAndroid Build Coastguard Worker     if (!(condition)) { \
19*aed3e508SAndroid Build Coastguard Worker       Err("Assertion '" #condition "' failed"); \
20*aed3e508SAndroid Build Coastguard Worker       return; \
21*aed3e508SAndroid Build Coastguard Worker     } \
22*aed3e508SAndroid Build Coastguard Worker   } while(false)
23*aed3e508SAndroid Build Coastguard Worker 
24*aed3e508SAndroid Build Coastguard Worker #define AssertWithReturnValue(condition, returnValue) \
25*aed3e508SAndroid Build Coastguard Worker   do { \
26*aed3e508SAndroid Build Coastguard Worker     if (!(condition)) { \
27*aed3e508SAndroid Build Coastguard Worker       Err("Assertion '" #condition "' failed"); \
28*aed3e508SAndroid Build Coastguard Worker       return (returnValue); \
29*aed3e508SAndroid Build Coastguard Worker     } \
30*aed3e508SAndroid Build Coastguard Worker   } while(false)
31*aed3e508SAndroid Build Coastguard Worker 
32*aed3e508SAndroid Build Coastguard Worker #define Log(format, ...) \
33*aed3e508SAndroid Build Coastguard Worker   gestures_log(GESTURES_LOG_INFO, "INFO:%s:%d: " format "\n", \
34*aed3e508SAndroid Build Coastguard Worker                __FILE__, __LINE__, ## __VA_ARGS__)
35*aed3e508SAndroid Build Coastguard Worker #define Err(format, ...) \
36*aed3e508SAndroid Build Coastguard Worker   gestures_log(GESTURES_LOG_ERROR, "ERROR:%s:%d: " format "\n", \
37*aed3e508SAndroid Build Coastguard Worker                __FILE__, __LINE__, ## __VA_ARGS__)
38*aed3e508SAndroid Build Coastguard Worker 
39*aed3e508SAndroid Build Coastguard Worker #define ErrOnce(format, ...) \
40*aed3e508SAndroid Build Coastguard Worker   do { \
41*aed3e508SAndroid Build Coastguard Worker     static bool written = false; \
42*aed3e508SAndroid Build Coastguard Worker     if (!written) { \
43*aed3e508SAndroid Build Coastguard Worker       Err(format, ## __VA_ARGS__); \
44*aed3e508SAndroid Build Coastguard Worker       written = true; \
45*aed3e508SAndroid Build Coastguard Worker     } \
46*aed3e508SAndroid Build Coastguard Worker   } while(false)
47*aed3e508SAndroid Build Coastguard Worker 
48*aed3e508SAndroid Build Coastguard Worker #define MTStatSample(key, value, timestamp) \
49*aed3e508SAndroid Build Coastguard Worker   gestures_log(GESTURES_LOG_INFO, "MTStat:%f:%s:%s\n", \
50*aed3e508SAndroid Build Coastguard Worker                (timestamp), (key), (value))
51*aed3e508SAndroid Build Coastguard Worker 
52*aed3e508SAndroid Build Coastguard Worker #define MTStatSampleInt(key, value, timestamp) \
53*aed3e508SAndroid Build Coastguard Worker   gestures_log(GESTURES_LOG_INFO, "MTStat:%f:%s:%d\n", \
54*aed3e508SAndroid Build Coastguard Worker                (timestamp), (key), (int)(value))
55*aed3e508SAndroid Build Coastguard Worker 
56*aed3e508SAndroid Build Coastguard Worker #define MTStatUpdate(key, value, timestamp) \
57*aed3e508SAndroid Build Coastguard Worker   gestures_log(GESTURES_LOG_INFO, "MTStat:%f:%s=%s\n", \
58*aed3e508SAndroid Build Coastguard Worker                (timestamp), (key), value)
59*aed3e508SAndroid Build Coastguard Worker 
60*aed3e508SAndroid Build Coastguard Worker #define MTStatUpdateInt(key, value, timestamp) \
61*aed3e508SAndroid Build Coastguard Worker   gestures_log(GESTURES_LOG_INFO, "MTStat:%f:%s=%d\n", \
62*aed3e508SAndroid Build Coastguard Worker                (timestamp), (key), (int)(value))
63*aed3e508SAndroid Build Coastguard Worker 
64*aed3e508SAndroid Build Coastguard Worker #endif  // GESTURES_LOGGING_H__
65