NCBI C++ ToolKit
ncbierr.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef CTRANSITION___NCBIERR__HPP
2 #define CTRANSITION___NCBIERR__HPP
3 
4 /* $Id: ncbierr.hpp 80115 2017-11-08 12:52:45Z ivanov $
5  * ===========================================================================
6  *
7  * PUBLIC DOMAIN NOTICE
8  * National Center for Biotechnology Information
9  *
10  * This software/database is a "United States Government Work" under the
11  * terms of the United States Copyright Act. It was written as part of
12  * the author's official duties as a United States Government employee and
13  * thus cannot be copyrighted. This software/database is freely available
14  * to the public for use. The National Library of Medicine and the U.S.
15  * Government have not placed any restriction on its use or reproduction.
16  *
17  * Although all reasonable efforts have been taken to ensure the accuracy
18  * and reliability of the software and data, the NLM and the U.S.
19  * Government do not and cannot warrant the performance or results that
20  * may be obtained by using this software or data. The NLM and the U.S.
21  * Government disclaim all warranties, express or implied, including
22  * warranties of performance, merchantability or fitness for any particular
23  * purpose.
24  *
25  * Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Author: Vladimir Ivanov
30  * Wrapper for the C Toolkit ErrPostEx() macro.
31  *
32  */
33 
34 /** @addtogroup CToolsBridge
35  *
36  * @{
37  */
38 
39 
40 #include <corelib/ncbidiag.hpp>
42 
44 
45 
46 // C Toolkit error codes
47 
48 #define E_NoMemory 1
49 #define E_Programmer 999
50 
51 /*
52 #define E_File 2
53 #define E_FOpen 3
54 #define E_FRead 4
55 #define E_FWrite 5
56 #define E_CdEject 9
57 #define E_Math 4
58 #define E_SGML 3
59 */
60 
61 
62 // C Toolkit severity
64 // ?
65 #define MSG_OK SEV_ERROR
66 
67 // C -> C++ names conversion
68 #define ErrPostStr ErrPostEx
69 #define ErrSetLog SetLogFile
70 
71 // Convert C Toolkit severity to C++
72 extern NCBI_NS_NCBI::Severity ctransition_ErrSeverity(ErrSev sev);
73 
74 // Convert variable list of arguments to string
75 extern std::string ctransition_ErrMessage(const char* format, ...);
76 
77 // Post message
78 #define ErrPostEx(sev, err_code, ...) \
79  ( NCBI_NS_NCBI::CNcbiDiag(DIAG_COMPILE_INFO).GetRef() \
80  << NCBI_NS_NCBI::ErrCode(err_code) \
81  << ctransition_ErrSeverity(sev) \
82  << ctransition_ErrMessage(__VA_ARGS__) \
83  << NCBI_NS_NCBI::Endm )
84 
85 
86 // Redefine message function via ErrPostEx()
87 #define Nlm_Message(key, ...) ErrPostEx((ErrSev)key, 0, __VA_ARGS__)
88 
89 
91 
92 /* @} */
93 
94 #endif /* CTRANSITION___NCBIERR__HPP */
string
Definition: cgiapp.hpp:687
#define BEGIN_CTRANSITION_SCOPE
Definition: ncbilcl.hpp:49
std::string ctransition_ErrMessage(const char *format,...)
Definition: ct_ncbierr.cpp:72
NCBI_NS_NCBI::Severity ctransition_ErrSeverity(ErrSev sev)
Definition: ct_ncbierr.cpp:44
#define END_CTRANSITION_SCOPE
Definition: ncbilcl.hpp:50
ErrSev
Definition: ncbierr.hpp:63
@ SEV_REJECT
Definition: ncbierr.hpp:63
@ SEV_WARNING
Definition: ncbierr.hpp:63
@ SEV_MAX
Definition: ncbierr.hpp:63
@ SEV_NONE
Definition: ncbierr.hpp:63
@ SEV_INFO
Definition: ncbierr.hpp:63
@ SEV_ERROR
Definition: ncbierr.hpp:63
@ SEV_FATAL
Definition: ncbierr.hpp:63
Defines NCBI C++ diagnostic APIs, classes, and macros.
static Format format
Definition: njn_ioutil.cpp:53
Modified on Wed May 15 15:11:32 2024 by modify_doxy.py rev. 669887