Initial check-in
[shibboleth/cpp-xmltooling.git] / xmltooling / util / NDC.h
1 /*\r
2  *  Copyright 2001-2006 Internet2\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 /**\r
18  * @file NDC.h\r
19  * \r
20  * Diagnostic context for logging \r
21  */\r
22 \r
23 #if !defined(__xmltooling_ndc_h__)\r
24 #define __xmltooling_ndc_h__\r
25 \r
26 #include <string>\r
27 #include <xmltooling/base.h>\r
28 \r
29 namespace xmltooling {\r
30     \r
31     /**\r
32      * A portable stack-based context for diagnostic logging \r
33      */\r
34     class XMLTOOL_API NDC\r
35     {\r
36     public:\r
37         /**\r
38          * Constructor pushes logging context onto diagnostic stack\r
39          * @param context   null-terminated label for context\r
40          */\r
41         NDC(const char* context);\r
42 \r
43         /**\r
44          * Constructor pushes logging context onto diagnostic stack\r
45          * @param context   string label for context\r
46          */\r
47         NDC(const std::string& context);\r
48         \r
49         /**\r
50          * Destructor pops context off of diagnostic stack\r
51          */\r
52         ~NDC();\r
53         \r
54     private:\r
55         NDC(const NDC&);\r
56         NDC& operator=(const NDC&);\r
57     };\r
58 \r
59 };\r
60 \r
61 #endif /* __xmltooling_ndc_h__ */\r