RSA sync with private
[platform/core/messaging/msg-service.git] / include / utils / MsgDebug.h
1 /*
2 * Copyright 2012  Samsung Electronics Co., Ltd
3 *
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *    http://www.tizenopensource.org/license
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 #ifndef __MSG_DEBUG_H__
18 #define __MSG_DEBUG_H__
19
20 /*==================================================================================================
21                                          INCLUDE FILES
22 ==================================================================================================*/
23 #include <sys/types.h>
24 #include <unistd.h>
25 #include <string.h>
26 #include <sys/time.h>
27 #include <time.h>
28
29 #include "MsgTypes.h"
30 #include "MsgCmdTypes.h"
31 #include "MsgFilterTypes.h"
32
33 extern "C"{
34         #include <dlog.h>
35 };
36
37
38 /*==================================================================================================
39                                     DEFINES
40 ==================================================================================================*/
41 #define USER_TAG "MSG_FW"
42
43 #define MSG_SMS_VALID_TAG "VLD_SMS"
44 #define MSG_MMS_VALID_TAG "VLD_MMS"
45
46 #define DLOG_ENABLE
47 //#define LOG_ENABLE
48
49
50 /*==================================================================================================
51                                      FUNCTION PROTOTYPES
52 ==================================================================================================*/
53 int get_tid();
54
55
56 #if defined(DLOG_ENABLE)
57
58 #define MSG_FATAL(fmt, ...) \
59         do \
60         {\
61                 SLOG(LOG_ERROR, USER_TAG, "[%s: %s(): %d] ERROR << " fmt " >>\n\n", rindex(__FILE__, '/')+1,  __FUNCTION__, __LINE__, ##__VA_ARGS__);\
62         } while (0)
63
64 #define MSG_DEBUG(fmt, ...)\
65         do\
66         {\
67                 SLOG(LOG_DEBUG, USER_TAG, "[%s: %s(): %d] " fmt"\n\n", rindex(__FILE__, '/')+1,  __FUNCTION__, __LINE__, ##__VA_ARGS__);\
68         } while (0)
69
70 #define MSG_BEGIN() \
71         do\
72     {\
73                 SLOG(LOG_DEBUG, USER_TAG, "[%s: %s(): %d] BEGIN >>>> \n\n", rindex(__FILE__, '/')+1,  __FUNCTION__, __LINE__ );\
74     } while( 0 )
75
76 #define MSG_END() \
77         do\
78     {\
79                 SLOG(LOG_DEBUG, USER_TAG, "[%s: %s(): %d] END   <<<<  \n\n", rindex(__FILE__, '/')+1,  __FUNCTION__, __LINE__ );\
80     } \
81     while( 0 )
82
83 #define MSG_PROFILE_BEGIN(pfid) \
84         unsigned int __prf_l1_##pfid = __LINE__;    \
85         struct timeval __prf_1_##pfid;              \
86         struct timeval __prf_2_##pfid;              \
87         do {                                        \
88                 gettimeofday(&__prf_1_##pfid, 0);       \
89         } while (0)
90
91 #define MSG_PROFILE_END(pfid) \
92         unsigned int __prf_l2_##pfid = __LINE__;\
93         do { \
94                 gettimeofday(&__prf_2_##pfid, 0);\
95                 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
96                 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
97                 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
98                 SLOG(LOG_DEBUG, USER_TAG, "**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid                            \
99                 " -> Elapsed Time: %u.%06u seconds\n",                    \
100                 rindex(__FILE__, '/')+1,                \
101                 __FUNCTION__, \
102                 __prf_l1_##pfid,                                         \
103                 __prf_l2_##pfid,                                         \
104                 (unsigned int)(__ds),                                    \
105                 (unsigned int)(__dm));                                   \
106         } while (0)
107
108
109 #define MSG_SMS_VLD_INFO(fmt, ...)\
110         do\
111         {\
112                 SLOG(LOG_DEBUG, MSG_SMS_VALID_TAG, "[SMS INFO]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
113         } while (0)
114
115 #define MSG_SMS_VLD_TXT(fmt, ...)\
116         do\
117         {\
118                 SLOG(LOG_DEBUG, MSG_SMS_VALID_TAG, "[SMS_TEXT]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
119         } while (0)
120
121 #define MSG_MMS_VLD_INFO(fmt, ...)\
122         do\
123         {\
124                 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS INFO]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
125         } while (0)
126
127 #define MSG_MMS_VLD_TXT(fmt, ...)\
128         do\
129         {\
130                 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS TEXT]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
131         } while (0)
132
133 #define MSG_MMS_VLD_FILE(fmt, ...)\
134         do\
135         {\
136                 SLOG(LOG_DEBUG, MSG_MMS_VALID_TAG, "[MMS FILE]%s, "fmt"\n", __TIMESTAMP__, ##__VA_ARGS__);\
137         } while (0)
138
139 #elif defined(LOG_ENABLE)
140
141 #define MSG_FATAL(fmt, ...) \
142         do \
143         {\
144                 printf("\n[%d] [MSGFW: %s: %s(): %d] *FAILED* << " fmt" >>\n", get_tid(), rindex(__FILE__, '/')+1,  __FUNCTION__, __LINE__,  ##__VA_ARGS__);\
145         } while (0)
146
147 #define MSG_DEBUG(fmt, ...) \
148         do\
149         {\
150                 printf("\n[%d] [MSGFW: %s: %s(): %d] " fmt"\n", get_tid(), rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__);\
151         } while (0)
152
153 #define MSG_BEGIN() \
154         do\
155     {\
156         printf("\n[%d] BEGIN >>>> %s() at [MSGFW: %s: %d]\n", get_tid(),__FUNCTION__, rindex(__FILE__, '/')+1,  __LINE__ );\
157     } while( 0 )
158
159 #define MSG_END() \
160         do\
161     {\
162         printf("\n[%d] END   <<<< %s() at [MSGFW: %s: %d]\n", get_tid(), __FUNCTION__, rindex(__FILE__, '/')+1,  __LINE__); \
163     } \
164     while( 0 )
165
166 #define MSG_PROFILE_BEGIN(pfid) \
167         unsigned int __prf_l1_##pfid = __LINE__;    \
168         struct timeval __prf_1_##pfid;              \
169         struct timeval __prf_2_##pfid;              \
170         do {                                        \
171                 gettimeofday(&__prf_1_##pfid, 0);       \
172         } while (0)
173
174 #define MSG_PROFILE_END(pfid) \
175         unsigned int __prf_l2_##pfid = __LINE__;\
176         do { \
177                 gettimeofday(&__prf_2_##pfid, 0);\
178                 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
179                 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
180                 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
181                 printf("**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid                            \
182                 " -> Elapsed Time: %u.%06u seconds\n",                    \
183                 rindex(__FILE__, '/')+1,                \
184                 __FUNCTION__, \
185                 __prf_l1_##pfid,                                         \
186                 __prf_l2_##pfid,                                         \
187                 (unsigned int)(__ds),                                    \
188                 (unsigned int)(__dm));                                   \
189         } while (0)
190
191 #else
192
193 #define MSG_FATAL(fmt, ...)
194 #define MSG_DEBUG(fmt, ...)
195 #define MSG_BEGIN()
196 #define MSG_END()
197
198 #define MSG_PROFILE_BEGIN(pfid) \
199         unsigned int __prf_l1_##pfid = __LINE__;    \
200         struct timeval __prf_1_##pfid;              \
201         struct timeval __prf_2_##pfid;              \
202         do {                                        \
203                 gettimeofday(&__prf_1_##pfid, 0);       \
204         } while (0)
205
206 #define MSG_PROFILE_END(pfid) \
207         unsigned int __prf_l2_##pfid = __LINE__;\
208         do { \
209                 gettimeofday(&__prf_2_##pfid, 0);\
210                 long __ds = __prf_2_##pfid.tv_sec - __prf_1_##pfid.tv_sec;\
211                 long __dm = __prf_2_##pfid.tv_usec - __prf_1_##pfid.tv_usec;\
212                 if ( __dm < 0 ) { __ds--; __dm = 1000000 + __dm; } \
213                 printf("**PROFILE** [MSGFW: %s: %s() %u ~ %u] " #pfid                            \
214                 " -> Elapsed Time: %u.%06u seconds\n",                    \
215                 rindex(__FILE__, '/')+1,                \
216                 __FUNCTION__, \
217                 __prf_l1_##pfid,                                         \
218                 __prf_l2_##pfid,                                         \
219                 (unsigned int)(__ds),                                    \
220                 (unsigned int)(__dm));                                   \
221         } while (0)
222
223 #endif
224
225 const char * MsgDbgCmdStr(MSG_CMD_TYPE_T cmdType);
226 const char * MsgDbgEvtStr(MSG_EVENT_TYPE_T evtType);
227
228 #endif //__MSG_DEBUG_H__
229