Annotation of gpl/axl/knife/axl-knife.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Axl Knife: Console tool on top of Axl Library
3: * Copyright (C) 2007 Advanced Software Production Line, S.L.
4: *
5: * This program is free software; you can redistribute it and/or
6: * modify it under the terms of the GNU General Public License as
7: * published by the Free Software Foundation; either version 2.1 of
8: * the License, or (at your option) any later version.
9: *
10: * This program is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: * GNU Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU General Public
16: * License along with this program; if not, write to the Free
17: * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18: * 02111-1307 USA
19: *
20: * For commercial support on build XML enabled solutions contact us:
21: *
22: * Postal address:
23: * Advanced Software Production Line, S.L.
24: * Edificio Alius A, Oficina 102,
25: * C/ Antonio Suarez Nº 10,
26: * Alcalá de Henares 28802 Madrid
27: * Spain
28: *
29: * Email address:
30: * info@aspl.es - http://www.aspl.es/xml
31: */
32: #ifndef __AXL_KNIFE_H__
33: #define __AXL_KNIFE_H__
34:
35: /* local includes */
36: #include <stdarg.h>
37:
38: /* include axl main headers */
39: #include <axl.h>
40:
41: /* include axl namespace support */
42: #include <axl_ns.h>
43:
44: /* include exarg support */
45: #include <exarg.h>
46:
47: /**
48: * Drop an error msg to the console stderr.
49: *
50: * To drop an error message use:
51: * \code
52: * error ("unable to open file: %s", file);
53: * \endcode
54: *
55: * @param m The error message to output.
56: */
57: void axl_knife_error (const char * file, int line, const char * format, ...);
58:
59: /**
60: * Drop a msg to the console stdout.
61: *
62: * To drop a message use:
63: * \code
64: * msg ("module loaded: %s", module);
65: * \endcode
66: *
67: * @param m The console message to output.
68: */
69: void axl_knife_msg (const char * file, int line, const char * format, ...);
70:
71: /**
72: * Drop a second level msg to the console stdout.
73: *
74: * To drop a message use:
75: * \code
76: * msg2 ("module loaded: %s", module);
77: * \endcode
78: *
79: * @param m The console message to output.
80: */
81: void axl_knife_msg2 (const char * file, int line, const char * format, ...);
82:
83: /**
84: * Drop a warning msg to the console stdout.
85: *
86: * To drop a message use:
87: * \code
88: * wrn ("module loaded: %s", module);
89: * \endcode
90: *
91: * @param m The warning message to output.
92: */
93: void axl_knife_wrn (const char * file, int line, const char * format, ...);
94:
95: #if defined(__COMPILING_AXL_KNIFE__)
96: #define error(m,...) do{axl_knife_error (__AXL_FILE__, __AXL_LINE__, m, ##__VA_ARGS__);}while(0)
97: #define msg(m,...) do{axl_knife_msg (__AXL_FILE__, __AXL_LINE__, m, ##__VA_ARGS__);}while(0)
98: #define msg2(m,...) do{axl_knife_msg2 (__AXL_FILE__, __AXL_LINE__, m, ##__VA_ARGS__);}while(0)
99: #define wrn(m,...) do{axl_knife_wrn (__AXL_FILE__, __AXL_LINE__, m, ##__VA_ARGS__);}while(0)
100: #endif
101:
102: /* support funcions */
103: char * axl_knife_file_name (const char * path);
104:
105: /**
106: * @brief Available tests to be performed while using \ref
107: * axl_knife_file_test
108: */
109: typedef enum {
110: /**
111: * @brief Check if the path exist.
112: */
113: FILE_EXISTS = 1 << 0,
114: /**
115: * @brief Check if the path provided is a symlink.
116: */
117: FILE_IS_LINK = 1 << 1,
118: /**
119: * @brief Check if the path provided is a directory.
120: */
121: FILE_IS_DIR = 1 << 2,
122: /**
123: * @brief Check if the path provided is a regular file.
124: */
125: FILE_IS_REGULAR = 1 << 3,
126: } FileTest;
127:
128:
129: axl_bool axl_knife_file_test (const char * path, FileTest test);
130:
131: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>