diff options
Diffstat (limited to 'src/mongo/util/stacktrace.h')
-rw-r--r-- | src/mongo/util/stacktrace.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mongo/util/stacktrace.h b/src/mongo/util/stacktrace.h index be94d5e7865..dcb0b29b2f9 100644 --- a/src/mongo/util/stacktrace.h +++ b/src/mongo/util/stacktrace.h @@ -39,8 +39,28 @@ #include "mongo/platform/windows_basic.h" // for CONTEXT #endif +#include "mongo/base/string_data.h" + namespace mongo { +/** Abstract sink onto which stacktrace is piecewise emitted. */ +class StackTraceSink { +public: + StackTraceSink& operator<<(StringData v) { + doWrite(v); + return *this; + } + + StackTraceSink& operator<<(uint64_t v) { + doWrite(v); + return *this; + } + +private: + virtual void doWrite(StringData v) = 0; + virtual void doWrite(uint64_t v) = 0; +}; + // Print stack trace information to "os", default to the log stream. void printStackTrace(std::ostream& os); void printStackTrace(); |