"Fossies" - the Fresh Open Source Software Archive

Member "libextractor-1.11/src/main/extractor_logging.h" (30 Jan 2021, 2666 Bytes) of package /linux/privat/libextractor-1.11.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "extractor_logging.h" see the Fossies "Dox" file reference documentation.

    1 /*
    2      This file is part of libextractor.
    3      Copyright (C) 2012 Vidyut Samanta and Christian Grothoff
    4 
    5      libextractor is free software; you can redistribute it and/or modify
    6      it under the terms of the GNU General Public License as published
    7      by the Free Software Foundation; either version 3, or (at your
    8      option) any later version.
    9 
   10      libextractor is distributed in the hope that it will be useful, but
   11      WITHOUT ANY WARRANTY; without even the implied warranty of
   12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13      General Public License for more details.
   14 
   15      You should have received a copy of the GNU General Public License
   16      along with libextractor; see the file COPYING.  If not, write to the
   17      Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   18      Boston, MA 02110-1301, USA.
   19  */
   20 /**
   21  * @file main/extractor_logging.h
   22  * @brief logging API for GNU libextractor
   23  * @author Christian Grothoff
   24  */
   25 #ifndef EXTRACTOR_LOGGING_H
   26 #define EXTRACTOR_LOGGING_H
   27 
   28 #define DEBUG 0
   29 
   30 #if DEBUG
   31 
   32 /**
   33  * Log function.
   34  *
   35  * @param file name of file with the error
   36  * @param line line number with the error
   37  * @param ... log message and arguments
   38  */
   39 void
   40 EXTRACTOR_log_ (const char *file, int line, const char *format, ...);
   41 
   42 /**
   43  * Log a message.
   44  *
   45  * @param ... format string and arguments for fmt (printf-style)
   46  */
   47 #define LOG(...) EXTRACTOR_log_ (__FILE__, __LINE__, __VA_ARGS__)
   48 
   49 #else
   50 
   51 /**
   52  * Log a message.
   53  *
   54  * @param ... format string and arguments for fmt (printf-style)
   55  */
   56 #define LOG(...)
   57 
   58 #endif
   59 
   60 
   61 /**
   62  * Log an error message about a failed system/libc call
   63  * using an error message based on 'errno'.
   64  *
   65  * @param syscall name of the syscall that failed
   66  */
   67 #define LOG_STRERROR(syscall) LOG ("System call `%s' failed: %s\n", syscall, \
   68                                    STRERROR (errno))
   69 
   70 
   71 /**
   72  * Log an error message about a failed system/libc call
   73  * involving a file using an error message based on 'errno'.
   74  *
   75  * @param syscall name of the syscall that failed
   76  * @param filename name of the file that was involved
   77  */
   78 #define LOG_STRERROR_FILE(syscall,filename) LOG ( \
   79     "System call `%s' failed for file `%s': %s\n", syscall, filename, STRERROR ( \
   80       errno))
   81 
   82 
   83 /**
   84  * Abort the program reporting an assertion failure
   85  *
   86  * @param file filename with the failure
   87  * @param line line number with the failure
   88  */
   89 void
   90 EXTRACTOR_abort_ (const char *file,
   91                   int line);
   92 
   93 
   94 /**
   95  * Abort program if assertion fails.
   96  *
   97  * @param cond assertion that must hold.
   98  */
   99 #define ASSERT(cond) do { if (! (cond)) EXTRACTOR_abort_ (__FILE__, __LINE__); \
  100 } while (0)
  101 
  102 
  103 #endif