Changeset 2846 for box/trunk/lib


Ignore:
Timestamp:
12/01/2011 00:10:45 (17 months ago)
Author:
chris
Message:

Add some more logging and exception macros. Refactor to reduce nesting
depth and increase modularity.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • box/trunk/lib/common/Logging.h

    r2830 r2846  
    4242        { BOX_LOG(Log::TRACE, stuff) } 
    4343 
    44 #define BOX_SYS_ERROR(stuff) \ 
    45         stuff << ": " << std::strerror(errno) << " (" << errno << ")" 
     44#define BOX_SYS_ERRNO_MESSAGE(error_number, stuff) \ 
     45        stuff << ": " << std::strerror(error_number) << " (" << errno << ")" 
     46 
     47#define BOX_FILE_MESSAGE(filename, message) \ 
     48        message << ": " << filename 
     49 
     50#define BOX_SYS_FILE_ERRNO_MESSAGE(filename, error_number, message) \ 
     51        BOX_SYS_ERRNO_MESSAGE(error_number, BOX_FILE_MESSAGE(filename, message)) 
     52 
     53#define BOX_SYS_ERROR_MESSAGE(stuff) \ 
     54        BOX_SYS_ERRNO_MESSAGE(errno, stuff) 
    4655 
    4756#define BOX_LOG_SYS_WARNING(stuff) \ 
    48         BOX_WARNING(BOX_SYS_ERROR(stuff)) 
     57        BOX_WARNING(BOX_SYS_ERROR_MESSAGE(stuff)) 
    4958#define BOX_LOG_SYS_ERROR(stuff) \ 
    50         BOX_ERROR(BOX_SYS_ERROR(stuff)) 
     59        BOX_ERROR(BOX_SYS_ERROR_MESSAGE(stuff)) 
     60#define BOX_LOG_SYS_ERRNO(error_number, stuff) \ 
     61        BOX_ERROR(BOX_SYS_ERRNO_MESSAGE(error_number, stuff)) 
    5162#define BOX_LOG_SYS_FATAL(stuff) \ 
    52         BOX_FATAL(BOX_SYS_ERROR(stuff)) 
     63        BOX_FATAL(BOX_SYS_ERROR_MESSAGE(stuff)) 
     64 
     65#define THROW_SYS_ERROR_NUMBER(message, error_number, exception, subtype) \ 
     66        THROW_EXCEPTION_MESSAGE(exception, subtype, \ 
     67                BOX_SYS_ERRNO_MESSAGE(error_number, message)) 
    5368 
    5469#define THROW_SYS_ERROR(message, exception, subtype) \ 
    55         BOX_LOG_SYS_ERROR(message); \ 
     70        THROW_SYS_ERROR_NUMBER(message, errno, exception, subtype) 
     71 
     72#define THROW_SYS_FILE_ERROR(message, filename, exception, subtype) \ 
     73        THROW_SYS_ERROR_NUMBER(BOX_FILE_MESSAGE(filename, message), \ 
     74                errno, exception, subtype) 
     75 
     76#define THROW_SYS_FILE_ERRNO(message, filename, error_number, exception, subtype) \ 
     77        THROW_SYS_ERROR_NUMBER(BOX_FILE_MESSAGE(filename, message), \ 
     78                error_number, exception, subtype) 
     79 
     80#define THROW_FILE_ERROR(message, filename, exception, subtype) \ 
    5681        THROW_EXCEPTION_MESSAGE(exception, subtype, \ 
    57                 BOX_SYS_ERROR(message)) 
    58  
    59 #define THROW_SYS_FILE_ERROR(message, filename, exception, subtype) \ 
    60         THROW_SYS_ERROR(message << ": " << filename, exception, subtype) 
    61  
    62 #define THROW_FILE_ERROR(message, filename, exception, subtype) \ 
    63         BOX_ERROR(message << ": " << filename); \ 
    64         THROW_EXCEPTION_MESSAGE(exception, subtype, message << ": " << filename); 
     82                BOX_FILE_MESSAGE(filename, message)) 
    6583 
    6684inline std::string GetNativeErrorMessage() 
Note: See TracChangeset for help on using the changeset viewer.