log4shib  2.0.1
NDC.hh
Go to the documentation of this file.
1 /*
2  * NDC.hh
3  *
4  * Copyright 2000, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
5  * Copyright 2000, Bastiaan Bakker. All rights reserved.
6  *
7  * See the COPYING file for the terms of usage and distribution.
8  */
9 
10 #ifndef _LOG4SHIB_NDC_HH
11 #define _LOG4SHIB_NDC_HH
12 
13 #include <log4shib/Portability.hh>
14 #include <string>
15 #include <vector>
16 
17 namespace log4shib {
70  public:
71 
73  DiagnosticContext(const std::string& message);
74  DiagnosticContext(const std::string& message,
75  const DiagnosticContext& parent);
76 
77  std::string message;
78  std::string fullMessage;
79  };
80 
81  typedef std::vector<DiagnosticContext> ContextStack;
82 
91  static void clear();
92 
106  static ContextStack* cloneStack();
107 
112  static const std::string& get();
113 
118  static int getDepth();
119 
120  static void inherit(ContextStack* stack);
121 
132  static std::string pop();
133 
142  static void push(const std::string& message);
143 
150  static void setMaxDepth(int maxDepth);
151 
156  static NDC& getNDC();
157 
158  NDC();
159  virtual ~NDC();
160 
161  public:
162  virtual void _clear();
163  virtual ContextStack* _cloneStack();
164  virtual const std::string& _get() const;
165  virtual int _getDepth() const;
166  virtual void _inherit(ContextStack* stack);
167  virtual std::string _pop();
168  virtual void _push(const std::string& message);
169  virtual void _setMaxDepth(int maxDepth);
170 
172  };
173 }
174 
175 #endif // _LOG4SHIB_NDC_HH
#define LOG4SHIB_EXPORT
Definition: Export.hh:11
The NDC class implements nested diagnostic contexts as defined by Neil Harrison in the article "Patte...
Definition: NDC.hh:69
std::vector< DiagnosticContext > ContextStack
Definition: NDC.hh:81
ContextStack _stack
Definition: NDC.hh:171
The top level namespace for all 'Log for C++' types and classes.
Definition: AbortAppender.hh:16
std::string fullMessage
Definition: NDC.hh:78
std::string message
Definition: NDC.hh:77