diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/eina/src/lib/eina_share_common.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/libraries/eina/src/lib/eina_share_common.h b/libraries/eina/src/lib/eina_share_common.h new file mode 100644 index 0000000..002c652 --- /dev/null +++ b/libraries/eina/src/lib/eina_share_common.h | |||
@@ -0,0 +1,103 @@ | |||
1 | /* EINA - EFL data type library | ||
2 | * Copyright (C) 2002-2008 Carsten Haitzler, Jorge Luis Zapata Muga, Cedric Bail | ||
3 | * | ||
4 | * This library is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU Lesser General Public | ||
6 | * License as published by the Free Software Foundation; either | ||
7 | * version 2.1 of the License, or (at your option) any later version. | ||
8 | * | ||
9 | * This library is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
12 | * Lesser General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU Lesser General Public | ||
15 | * License along with this library; | ||
16 | * if not, see <http://www.gnu.org/licenses/>. | ||
17 | * | ||
18 | * This file incorporates work covered by the following copyright and | ||
19 | * permission notice: | ||
20 | * | ||
21 | * Copyright (C) 2008 Peter Wehrfritz | ||
22 | * | ||
23 | * Permission is hereby granted, free of charge, to any person obtaining a copy | ||
24 | * of this software and associated documentation files (the "Software"), to | ||
25 | * deal in the Software without restriction, including without limitation the | ||
26 | * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or | ||
27 | * sell copies of the Software, and to permit persons to whom the Software is | ||
28 | * furnished to do so, subject to the following conditions: | ||
29 | * | ||
30 | * The above copyright notice and this permission notice shall be included in | ||
31 | * all copies of the Software and its Copyright notices. In addition publicly | ||
32 | * documented acknowledgment must be given that this software has been used if no | ||
33 | * source code of this software is made available publicly. This includes | ||
34 | * acknowledgments in either Copyright notices, Manuals, Publicity and Marketing | ||
35 | * documents or any documentation provided with any product containing this | ||
36 | * software. This License does not apply to any software that links to the | ||
37 | * libraries provided by this software (statically or dynamically), but only to | ||
38 | * the software provided. | ||
39 | * | ||
40 | * Please see the OLD-COPYING.PLAIN for a plain-english explanation of this notice | ||
41 | * and it's intent. | ||
42 | * | ||
43 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
44 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
45 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
46 | * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
47 | * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
48 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
49 | */ | ||
50 | |||
51 | #ifndef EINA_SHARE_COMMON_H_ | ||
52 | #define EINA_SHARE_COMMON_H_ | ||
53 | |||
54 | #include "eina_types.h" | ||
55 | #include "eina_magic.h" | ||
56 | |||
57 | typedef struct _Eina_Share Eina_Share; | ||
58 | |||
59 | struct dumpinfo | ||
60 | { | ||
61 | int used, saved, dups, unique; | ||
62 | }; | ||
63 | |||
64 | Eina_Bool eina_share_common_init(Eina_Share **share, | ||
65 | Eina_Magic node_magic, | ||
66 | const char *node_magic_STR); | ||
67 | Eina_Bool eina_share_common_shutdown(Eina_Share **share); | ||
68 | const char *eina_share_common_add_length(Eina_Share *share, | ||
69 | const char *str, | ||
70 | unsigned int slen, | ||
71 | unsigned int null_size) | ||
72 | EINA_WARN_UNUSED_RESULT; | ||
73 | const char *eina_share_common_ref(Eina_Share *share, const char *str); | ||
74 | void eina_share_common_del(Eina_Share *share, const char *str); | ||
75 | int eina_share_common_length(Eina_Share *share, | ||
76 | const char *str) EINA_CONST | ||
77 | EINA_WARN_UNUSED_RESULT; | ||
78 | void eina_share_common_dump(Eina_Share *share, void (*additional_dump)( | ||
79 | struct dumpinfo *), int used); | ||
80 | |||
81 | |||
82 | /* Population functions */ | ||
83 | void eina_share_common_population_add(Eina_Share *share, int slen); | ||
84 | void eina_share_common_population_del(Eina_Share *share, int slen); | ||
85 | |||
86 | /* Share logging */ | ||
87 | #ifdef CRITICAL | ||
88 | #undef CRITICAL | ||
89 | #endif | ||
90 | #define CRITICAL(...) EINA_LOG_DOM_CRIT(_eina_share_common_log_dom, __VA_ARGS__) | ||
91 | |||
92 | #ifdef ERR | ||
93 | #undef ERR | ||
94 | #endif | ||
95 | #define ERR(...) EINA_LOG_DOM_ERR(_eina_share_common_log_dom, __VA_ARGS__) | ||
96 | |||
97 | #ifdef DBG | ||
98 | #undef DBG | ||
99 | #endif | ||
100 | #define DBG(...) EINA_LOG_DOM_DBG(_eina_share_common_log_dom, __VA_ARGS__) | ||
101 | extern int _eina_share_common_log_dom; | ||
102 | |||
103 | #endif /* EINA_STRINGSHARE_H_ */ | ||