diff options
Diffstat (limited to 'src/vm/eventpipejsonfile.h')
-rw-r--r-- | src/vm/eventpipejsonfile.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/vm/eventpipejsonfile.h b/src/vm/eventpipejsonfile.h new file mode 100644 index 0000000000..b6e42def68 --- /dev/null +++ b/src/vm/eventpipejsonfile.h @@ -0,0 +1,40 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + + +#ifndef __EVENTPIPE_JSONFILE_H__ +#define __EVENTPIPE_JSONFILE_H__ + +#include "common.h" +#include "eventpipe.h" +#include "fstream.h" + +class EventPipeJsonFile +{ + public: + EventPipeJsonFile(SString &outFilePath); + ~EventPipeJsonFile(); + + // Write an event with the specified message and stack. + void WriteEvent(CommonEventFields &commonFields, SString &message, StackContents &stackContents); + + private: + + // Write a string to the file. + void Write(SString &str); + + // Format the input callstack for printing. + void FormatCallStack(StackContents &stackContents, SString &resultStr); + + // The output file stream. + CFileStream *m_pFileStream; + + // Keep track of if an error has been encountered while writing. + bool m_writeErrorEncountered; + + // File-open timestamp for use when calculating event timestamps. + LARGE_INTEGER m_fileOpenTimeStamp; +}; + +#endif // __EVENTPIPE_JSONFILE_H__ |