Files
UnrealEngineUWP/Engine/Source/Developer/Windows/LiveCodingServer/Private/External/LC_Telemetry.h
ben marsh b475bc61bd Merging Live++ 1.5.0
#rb none
#jira

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 7321355 in //UE4/Release-4.23/... via CL 7321356
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v371-7306989)

[CL 7370235 by ben marsh in Dev-Core branch]
2019-07-17 03:41:26 -04:00

50 lines
845 B
C++

// Copyright 2011-2019 Molecular Matters GmbH, all rights reserved.
#pragma once
#include "CoreTypes.h"
#include <chrono>
#include "LC_CriticalSection.h"
namespace telemetry
{
// scoped timing information
class Scope
{
public:
explicit Scope(const char* name);
~Scope(void);
double ReadSeconds(void) const;
double ReadMilliSeconds(void) const;
double ReadMicroSeconds(void) const;
void Restart(void);
void End(void);
private:
const char* m_name;
uint64_t m_start;
CriticalSection m_cs;
};
class Accumulator
{
public:
explicit Accumulator(const char* name);
void Accumulate(uint64_t value);
void ResetCurrent(void);
uint64_t ReadCurrent(void) const;
uint64_t ReadAccumulated(void) const;
void Print(void);
private:
const char* m_name;
uint64_t m_current;
uint64_t m_accumulated;
};
}