blob: 7686db7752f2ac0d03db00a61c66f71b80e5f1f6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
// 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__
#ifdef _DEBUG
#ifdef FEATURE_PERFTRACING
#include "common.h"
#include "eventpipe.h"
#include "eventpipeeventinstance.h"
#include "fstream.h"
class EventPipeJsonFile
{
public:
EventPipeJsonFile(SString &outFilePath);
~EventPipeJsonFile();
// Write an event instance.
void WriteEvent(EventPipeEventInstance &instance);
// Write an event with the specified message and stack.
void WriteEvent(LARGE_INTEGER timeStamp, DWORD threadID, 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 // FEATURE_PERFTRACING
#endif // _DEBUG
#endif // __EVENTPIPE_JSONFILE_H__
|