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>