Synesis Software STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ...

pantheios/util/severity/syslog.h

Go to the documentation of this file.
00001 /* /////////////////////////////////////////////////////////////////////////
00002  * File:        pantheios/util/severity/syslog.h
00003  *
00004  * Purpose:     Translations from Pantheios stock severity to ACE priority.
00005  *
00006  * Created:     13th November 2007
00007  * Updated:     14th February 2010
00008  *
00009  * Home:        http://www.pantheios.org/
00010  *
00011  * Copyright (c) 2007-2010, Matthew Wilson and Synesis Software
00012  * All rights reserved.
00013  *
00014  * Redistribution and use in source and binary forms, with or without
00015  * modification, are permitted provided that the following conditions are
00016  * met:
00017  *
00018  * - Redistributions of source code must retain the above copyright notice,
00019  *   this list of conditions and the following disclaimer.
00020  * - Redistributions in binary form must reproduce the above copyright
00021  *   notice, this list of conditions and the following disclaimer in the
00022  *   documentation and/or other materials provided with the distribution.
00023  * - Neither the name(s) of Matthew Wilson and Synesis Software nor the
00024  *   names of any contributors may be used to endorse or promote products
00025  *   derived from this software without specific prior written permission.
00026  *
00027  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
00028  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00029  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00030  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00031  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00032  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00033  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00034  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00035  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00036  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00037  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00038  *
00039  * ////////////////////////////////////////////////////////////////////// */
00040 
00041 
00047 #ifndef PANTHEIOS_INCL_PANTHEIOS_UTIL_SEVERITY_H_ACE
00048 #define PANTHEIOS_INCL_PANTHEIOS_UTIL_SEVERITY_H_ACE
00049 
00050 /* /////////////////////////////////////////////////////////////////////////
00051  * Version information
00052  */
00053 
00054 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00055 # define PANTHEIOS_VER_PANTHEIOS_UTIL_SEVERITY_H_ACE_MAJOR      1
00056 # define PANTHEIOS_VER_PANTHEIOS_UTIL_SEVERITY_H_ACE_MINOR      2
00057 # define PANTHEIOS_VER_PANTHEIOS_UTIL_SEVERITY_H_ACE_REVISION   2
00058 # define PANTHEIOS_VER_PANTHEIOS_UTIL_SEVERITY_H_ACE_EDIT       14
00059 #endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */
00060 
00061 /* /////////////////////////////////////////////////////////////////////////
00062  * Includes
00063  */
00064 
00065 #ifndef PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS
00066 # include <pantheios/pantheios.h>
00067 #endif /* !PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS */
00068 #ifndef PANTHEIOS_INCL_PANTHEIOS_QUALITY_H_CONTRACT
00069 # include <pantheios/quality/contract.h>
00070 #endif /* !PANTHEIOS_INCL_PANTHEIOS_QUALITY_H_CONTRACT */
00071 
00072 #ifndef PANTHEIOS_INCL_H_SYSLOG
00073 # define PANTHEIOS_INCL_H_SYSLOG
00074 # include <syslog.h>
00075 #endif /* !PANTHEIOS_INCL_H_SYSLOG */
00076 
00077 /* /////////////////////////////////////////////////////////////////////////
00078  * Namespace
00079  */
00080 
00081 #if !defined(PANTHEIOS_NO_NAMESPACE)
00082 namespace pantheios
00083 {
00084 
00085 #endif /* !PANTHEIOS_NO_NAMESPACE */
00086 
00087 /* /////////////////////////////////////////////////////////////////////////
00088  * Functions
00089  */
00090 
00097 #ifdef __cplusplus
00098 inline
00099 #else /* ? __cplusplus */
00100 static
00101 #endif /* __cplusplus */
00102        int pantheios_severity_to_syslog_severity(int severity)
00103 {
00104     int slsev;
00105 
00106     PANTHEIOS_CONTRACT_ENFORCE_PRECONDITION_PARAMS_API((severity >= 0 && severity < 16), "invalid severity");
00107 
00108     switch(severity)
00109     {
00110         case    PANTHEIOS_SEV_EMERGENCY:        slsev = LOG_EMERG;      break;
00111         case    PANTHEIOS_SEV_ALERT:            slsev = LOG_ALERT;      break;
00112         case    PANTHEIOS_SEV_CRITICAL:         slsev = LOG_CRIT;       break;
00113         case    PANTHEIOS_SEV_ERROR:            slsev = LOG_ERR;        break;
00114         case    PANTHEIOS_SEV_WARNING:          slsev = LOG_WARNING;    break;
00115         case    PANTHEIOS_SEV_NOTICE:           slsev = LOG_NOTICE;     break;
00116         case    PANTHEIOS_SEV_INFORMATIONAL:    slsev = LOG_INFO;       break;
00117         default:
00118         case    PANTHEIOS_SEV_DEBUG:            slsev = LOG_DEBUG;      break;
00119     }
00120 
00121     return slsev;
00122 }
00123 
00124 /* /////////////////////////////////////////////////////////////////////////
00125  * Namespace
00126  */
00127 
00128 #if !defined(PANTHEIOS_NO_NAMESPACE)
00129 } /* namespace pantheios */
00130 #endif /* !PANTHEIOS_NO_NAMESPACE */
00131 
00132 /* /////////////////////////////////////////////////////////////////////////
00133  * Inclusion
00134  */
00135 
00136 #ifdef STLSOFT_PPF_pragma_once_SUPPORT
00137 # pragma once
00138 #endif /* STLSOFT_PPF_pragma_once_SUPPORT */
00139 
00140 /* ////////////////////////////////////////////////////////////////////// */
00141 
00142 #endif /* !PANTHEIOS_INCL_PANTHEIOS_UTIL_SEVERITY_H_ACE */
00143 
00144 /* ///////////////////////////// end of file //////////////////////////// */

pantheios Library documentation Matthew Wilson & Synesis Software, 2006-2011 SourceForge.net Logo