Supplement db recovery tool
[platform/core/appfw/pkgmgr-info.git] / src / pkgmgrinfo_debug.h
1 /*
2  * pkgmgrinfo_debug
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6   * Contact: junsuk. oh <junsuk77.oh@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22 #ifndef __PKGMGR_INFO_DEBUG_H__
23 #define __PKGMGR_INFO_DEBUG_H__
24
25 #include <dlog.h>
26
27 #define _LOGE(fmt, arg...) LOGE(fmt, ##arg)
28 #define _LOGI(fmt, arg...) LOGI(fmt, ##arg)
29 #define _LOGD(fmt, arg...) LOGD(fmt, ##arg)
30
31 #define PKGMGR_INFO_ENABLE_DLOG
32
33 #define COLOR_RED               "\033[0;31m"
34 #define COLOR_BLUE              "\033[0;34m"
35 #define COLOR_END               "\033[0;m"
36
37 #ifdef PKGMGR_INFO_ENABLE_DLOG
38 #define PKGMGR_INFO_DEBUG(fmt, ...) \
39         do { \
40                 LOGD(fmt, ##__VA_ARGS__); \
41         } while (0)
42
43 #define PKGMGR_INFO_DEBUG_ERR(fmt, ...) \
44         do { \
45                 LOGE(COLOR_RED fmt COLOR_END, ##__VA_ARGS__); \
46         } while (0)
47
48 #define PKGMGR_INFO_BEGIN() \
49         do { \
50                 LOGD(COLOR_BLUE"BEGIN >>>>"COLOR_END); \
51         } while (0)
52
53 #define PKGMGR_INFO_END() \
54         do { \
55                 LOGD(COLOR_BLUE"END <<<<"COLOR_END); \
56         } while (0)
57
58 #else
59 #define PKGMGR_INFO_DEBUG(fmt, ...) \
60         do { \
61                 printf("\n [%s: %s(): %d] " fmt"\n",  rindex(__FILE__, '/')+1, __FUNCTION__, __LINE__, ##__VA_ARGS__); \
62         } while (0)
63
64 #define PKGMGR_INFO_BEGIN() \
65         do { \
66                 printf("\n [%s: %d] : BEGIN >>>> %s() \n", rindex(__FILE__, '/')+1,  __LINE__ , __FUNCTION__); \
67         } while (0)
68
69 #define PKGMGR_INFO_END() \
70         do { \
71                 printf("\n [%s: %d]: END   <<<< %s()\n", rindex(__FILE__, '/')+1,  __LINE__ , __FUNCTION__); \
72         } while (0)
73 #endif
74
75
76 #define ret_if(expr) do { \
77         if (expr) { \
78                 PKGMGR_INFO_DEBUG_ERR("(%s) ", #expr); \
79                 return; \
80         } \
81 } while (0)
82
83 #define retm_if(expr, fmt, arg...) do { \
84         if (expr) { \
85                 PKGMGR_INFO_DEBUG_ERR("(%s) "fmt, #expr, ##arg); \
86                 return; \
87         } \
88 } while (0)
89
90 #define retv_if(expr, val) do { \
91         if (expr) { \
92                 PKGMGR_INFO_DEBUG_ERR("(%s) ", #expr); \
93                 return (val); \
94         } \
95 } while (0)
96
97 #define retvm_if(expr, val, fmt, arg...) do { \
98         if (expr) { \
99                 PKGMGR_INFO_DEBUG_ERR("(%s) "fmt, #expr, ##arg); \
100                 return (val); \
101         } \
102 } while (0)
103
104 #define trym_if(expr, fmt, arg...) do { \
105         if (expr) { \
106                 PKGMGR_INFO_DEBUG_ERR("(%s) "fmt, #expr, ##arg); \
107                 goto catch; \
108         } \
109 } while (0)
110
111 #define tryvm_if(expr, val, fmt, arg...) do { \
112         if (expr) { \
113                 PKGMGR_INFO_DEBUG_ERR("(%s) "fmt, #expr, ##arg); \
114                 val; \
115                 goto catch; \
116         } \
117 } while (0)
118
119 #endif  /* __PKGMGR_INFO_DEBUG_H__ */