|
2 | 2 | #include "logger.h"
|
3 | 3 |
|
4 | 4 | static inline void
|
5 |
| -_lifesensor_logger_yaml_comma( |
6 |
| - Lifesensor_logger_scope *scope |
7 |
| -){ |
8 |
| - if (scope->entries++) { |
| 5 | +_lifesensor_logger_json_comma( |
| 6 | + Lifesensor_logger_scope *scope) |
| 7 | +{ |
| 8 | + if (scope->entries++) |
| 9 | + { |
9 | 10 | scope->printf(", ");
|
10 | 11 | }
|
11 | 12 | }
|
12 | 13 |
|
13 | 14 | static inline void
|
14 |
| -_lifesensor_logger_yaml_name( |
| 15 | +_lifesensor_logger_json_name( |
15 | 16 | Lifesensor_logger_scope *scope,
|
16 |
| - char *name |
17 |
| -){ |
18 |
| - if (name) { |
| 17 | + char *name) |
| 18 | +{ |
| 19 | + if (name) |
| 20 | + { |
19 | 21 | scope->printf("\"%s\": ");
|
20 | 22 | }
|
21 | 23 | }
|
22 | 24 |
|
23 | 25 | static void
|
24 |
| -lifesensor_logger_yaml_enter_map( |
| 26 | +lifesensor_logger_json_enter_map( |
25 | 27 | Lifesensor_logger_scope *scope,
|
26 | 28 | Lifesensor_logger_scope *subscope,
|
27 | 29 | char *name)
|
28 | 30 | {
|
29 |
| - subscope->entries = 0; |
30 |
| - subscope->level = scope->level + 1; |
| 31 | + if (scope) { |
| 32 | + subscope->entries = 0; |
| 33 | + subscope->level = scope->level + 1; |
| 34 | + subscope->printf = scope->printf; |
| 35 | + |
| 36 | + _lifesensor_logger_json_comma(scope); |
| 37 | + _lifesensor_logger_json_name(scope, name); |
| 38 | + } |
| 39 | + |
31 | 40 | subscope->type = LIFESENSOR_LOGGER_SCOPE_MAP;
|
32 |
| - subscope->printf = scope->printf; |
33 |
| - |
34 |
| - _lifesensor_logger_yaml_comma(scope); |
35 |
| - _lifesensor_logger_yaml_name(scope,name); |
36 |
| - scope->printf("{ "); |
| 41 | + subscope->printf("{ "); |
37 | 42 | }
|
38 | 43 |
|
39 | 44 | static void
|
40 |
| -lifesensor_logger_yaml_enter_list( |
| 45 | +lifesensor_logger_json_enter_list( |
41 | 46 | Lifesensor_logger_scope *scope,
|
42 | 47 | Lifesensor_logger_scope *subscope,
|
43 | 48 | char *name)
|
44 | 49 | {
|
45 |
| - subscope->entries = 0; |
46 |
| - subscope->level = scope->level + 1; |
| 50 | + if (scope) { |
| 51 | + subscope->entries = 0; |
| 52 | + subscope->level = scope->level + 1; |
| 53 | + subscope->printf = scope->printf; |
| 54 | + |
| 55 | + _lifesensor_logger_json_comma(scope); |
| 56 | + _lifesensor_logger_json_name(scope, name); |
| 57 | + } |
| 58 | + |
47 | 59 | subscope->type = LIFESENSOR_LOGGER_SCOPE_LIST;
|
48 |
| - subscope->printf = scope->printf; |
49 |
| - |
50 |
| - _lifesensor_logger_yaml_comma(scope); |
51 |
| - _lifesensor_logger_yaml_name(scope,name); |
52 |
| - scope->printf("[ "); |
| 60 | + subscope->printf("[ "); |
53 | 61 | }
|
54 | 62 |
|
55 | 63 | static void
|
56 |
| -lifesensor_logger_yaml_exit( |
| 64 | +lifesensor_logger_json_exit( |
57 | 65 | Lifesensor_logger_scope *scope,
|
58 | 66 | Lifesensor_logger_scope *subscope)
|
59 | 67 | {
|
60 |
| - switch(subscope->type) { |
61 |
| - case LIFESENSOR_LOGGER_SCOPE_MAP: |
62 |
| - scope->printf(" }"); |
63 |
| - break; |
64 |
| - case LIFESENSOR_LOGGER_SCOPE_LIST: |
65 |
| - scope->printf(" ]"); |
66 |
| - break; |
| 68 | + switch (subscope->type) |
| 69 | + { |
| 70 | + case LIFESENSOR_LOGGER_SCOPE_MAP: |
| 71 | + subscope->printf(" }"); |
| 72 | + break; |
| 73 | + case LIFESENSOR_LOGGER_SCOPE_LIST: |
| 74 | + subscope->printf(" ]"); |
| 75 | + break; |
67 | 76 | }
|
68 | 77 | }
|
69 | 78 |
|
70 | 79 | static void
|
71 |
| -lifesensor_logger_yaml_log_uint( |
| 80 | +lifesensor_logger_json_log_uint( |
72 | 81 | Lifesensor_logger_scope *scope,
|
73 |
| - char *name, |
74 |
| - unsigned long int value) |
| 82 | + unsigned long int value, |
| 83 | + char *name) |
75 | 84 | {
|
76 |
| - _lifesensor_logger_yaml_comma(scope); |
77 |
| - _lifesensor_logger_yaml_name(scope, name); |
| 85 | + _lifesensor_logger_json_comma(scope); |
| 86 | + _lifesensor_logger_json_name(scope, name); |
78 | 87 | scope->printf("%+lu", value);
|
79 | 88 | }
|
80 | 89 |
|
81 | 90 | static void
|
82 |
| -lifesensor_logger_yaml_log_int( |
| 91 | +lifesensor_logger_json_log_int( |
83 | 92 | Lifesensor_logger_scope *scope,
|
84 |
| - char *name, |
85 |
| - long int value) |
| 93 | + long int value, |
| 94 | + char *name) |
86 | 95 | {
|
87 |
| - _lifesensor_logger_yaml_comma(scope); |
88 |
| - _lifesensor_logger_yaml_name(scope, name); |
| 96 | + _lifesensor_logger_json_comma(scope); |
| 97 | + _lifesensor_logger_json_name(scope, name); |
89 | 98 | scope->printf("%+ld", value);
|
90 | 99 | }
|
91 | 100 |
|
92 | 101 | static void
|
93 |
| -lifesensor_logger_yaml_log_float( |
| 102 | +lifesensor_logger_json_log_float( |
94 | 103 | Lifesensor_logger_scope *scope,
|
95 |
| - char *name, |
96 |
| - float value) |
| 104 | + float value, |
| 105 | + char *name) |
97 | 106 | {
|
98 |
| - _lifesensor_logger_yaml_comma(scope); |
99 |
| - _lifesensor_logger_yaml_name(scope, name); |
| 107 | + _lifesensor_logger_json_comma(scope); |
| 108 | + _lifesensor_logger_json_name(scope, name); |
100 | 109 | scope->printf("%+G", value);
|
101 | 110 | }
|
102 | 111 |
|
103 | 112 | static void
|
104 |
| -lifesensor_logger_yaml_log_char( |
| 113 | +lifesensor_logger_json_log_char( |
105 | 114 | Lifesensor_logger_scope *scope,
|
106 |
| - char *name, |
107 |
| - char value) |
| 115 | + char value, |
| 116 | + char *name) |
108 | 117 | {
|
109 |
| - _lifesensor_logger_yaml_comma(scope); |
110 |
| - _lifesensor_logger_yaml_name(scope, name); |
| 118 | + _lifesensor_logger_json_comma(scope); |
| 119 | + _lifesensor_logger_json_name(scope, name); |
111 | 120 | scope->printf("\"%c\"", value);
|
112 | 121 | }
|
113 | 122 |
|
114 | 123 | static void
|
115 |
| -lifesensor_logger_yaml_log_str( |
| 124 | +lifesensor_logger_json_log_str( |
116 | 125 | Lifesensor_logger_scope *scope,
|
117 |
| - char *name, |
118 |
| - char *value) |
| 126 | + char *value, |
| 127 | + char *name) |
119 | 128 | {
|
120 |
| - _lifesensor_logger_yaml_comma(scope); |
121 |
| - _lifesensor_logger_yaml_name(scope, name); |
| 129 | + _lifesensor_logger_json_comma(scope); |
| 130 | + _lifesensor_logger_json_name(scope, name); |
122 | 131 | scope->printf("\"%s\"", value);
|
123 | 132 | }
|
124 | 133 |
|
125 | 134 | static void
|
126 |
| -lifesensor_logger_yaml_log_ptr( |
| 135 | +lifesensor_logger_json_log_ptr( |
127 | 136 | Lifesensor_logger_scope *scope,
|
128 |
| - char *name, |
129 |
| - void *value) |
| 137 | + void *value, |
| 138 | + char *name) |
130 | 139 | {
|
131 |
| - _lifesensor_logger_yaml_comma(scope); |
132 |
| - _lifesensor_logger_yaml_name(scope, name); |
| 140 | + _lifesensor_logger_json_comma(scope); |
| 141 | + _lifesensor_logger_json_name(scope, name); |
133 | 142 | scope->printf("\"0x%x\"", value);
|
134 | 143 | }
|
135 | 144 |
|
136 |
| -void |
137 |
| -lifesensor_logger_yaml_init( |
| 145 | +void lifesensor_logger_json_init( |
138 | 146 | Lifesensor_logger *logger,
|
139 | 147 | Lifesensor_logger_scope *scope,
|
140 |
| - void (*printf)(const char* fmt, ...)) |
| 148 | + int (*printf)(const char *fmt, ...)) |
141 | 149 | {
|
142 |
| - logger->enter_map = &lifesensor_logger_yaml_enter_map; |
143 |
| - logger->enter_list = &lifesensor_logger_yaml_enter_list; |
144 |
| - logger->exit = &lifesensor_logger_yaml_exit; |
145 |
| - logger->log_uint = &lifesensor_logger_yaml_log_uint; |
146 |
| - logger->log_int = &lifesensor_logger_yaml_log_int; |
147 |
| - logger->log_float = &lifesensor_logger_yaml_log_float; |
148 |
| - logger->log_char = &lifesensor_logger_yaml_log_char; |
149 |
| - logger->log_str = &lifesensor_logger_yaml_log_str; |
150 |
| - logger->log_ptr = &lifesensor_logger_yaml_log_ptr; |
| 150 | + logger->enter_map = &lifesensor_logger_json_enter_map; |
| 151 | + logger->enter_list = &lifesensor_logger_json_enter_list; |
| 152 | + logger->exit = &lifesensor_logger_json_exit; |
| 153 | + logger->log_uint = &lifesensor_logger_json_log_uint; |
| 154 | + logger->log_int = &lifesensor_logger_json_log_int; |
| 155 | + logger->log_float = &lifesensor_logger_json_log_float; |
| 156 | + logger->log_char = &lifesensor_logger_json_log_char; |
| 157 | + logger->log_str = &lifesensor_logger_json_log_str; |
| 158 | + logger->log_ptr = &lifesensor_logger_json_log_ptr; |
151 | 159 |
|
152 | 160 | scope->type = LIFESENSOR_LOGGER_SCOPE_NONE;
|
153 | 161 | scope->entries = 0;
|
|
0 commit comments