Various patches are applied
[platform/framework/web/data-provider-master.git] / include / util.h
1 /*
2  * Copyright 2013  Samsung Electronics Co., Ltd
3  *
4  * Licensed under the Flora License, Version 1.1 (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://floralicense.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 extern unsigned long util_string_hash(const char *str);
18 extern double util_timestamp(void);
19 extern int util_check_ext(const char *filename, const char *check_ptr);
20 extern int util_validate_livebox_package(const char *pkgname);
21 extern int util_unlink(const char *filename);
22 extern int util_unlink_files(const char *folder);
23 extern char *util_slavename(void);
24 extern const char *util_basename(const char *name);
25 extern unsigned long long util_free_space(const char *path);
26 extern char *util_replace_string(const char *src, const char *pattern, const char *replace);
27 extern const char *util_uri_to_path(const char *uri);
28 extern void *util_timer_add(double interval, Eina_Bool (*cb)(void *data), void *data);
29 extern void util_timer_interval_set(void *timer, double interval);
30 extern char *util_get_file_kept_in_safe(const char *id);
31 extern double util_time_delay_for_compensation(double period);
32
33 #define SCHEMA_FILE     "file://"
34 #define SCHEMA_PIXMAP   "pixmap://"
35 #define SCHEMA_SHM      "shm://"
36
37 #define CRITICAL_SECTION_BEGIN(handle) \
38 do { \
39         int ret; \
40         ret = pthread_mutex_lock(handle); \
41         if (ret != 0) \
42                 ErrPrint("Failed to lock: %s\n", strerror(ret)); \
43 } while (0)
44
45 #define CRITICAL_SECTION_END(handle) \
46 do { \
47         int ret; \
48         ret = pthread_mutex_unlock(handle); \
49         if (ret != 0) \
50                 ErrPrint("Failed to unlock: %s\n", strerror(ret)); \
51 } while (0)
52
53 #define CANCEL_SECTION_BEGIN() do { \
54         int ret; \
55         ret = pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL); \
56         if (ret != 0) \
57                 ErrPrint("Unable to set cancelate state: %s\n", strerror(ret)); \
58 } while (0)
59
60 #define CANCEL_SECTION_END() do { \
61         int ret; \
62         ret = pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); \
63         if (ret != 0) \
64                 ErrPrint("Unable to set cancelate state: %s\n", strerror(ret)); \
65 } while (0)
66
67 #define CLOSE_PIPE(p)   do { \
68         int status; \
69         status = close(p[PIPE_READ]); \
70         if (status < 0) \
71                 ErrPrint("close: %s\n", strerror(errno)); \
72         status = close(p[PIPE_WRITE]); \
73         if (status < 0) \
74                 ErrPrint("close: %s\n", strerror(errno)); \
75 } while (0)
76
77 #define PIPE_READ 0
78 #define PIPE_WRITE 1
79 #define PIPE_MAX 2
80
81 /* End of a file */