MCPcopy Create free account
hub / github.com/GameTechDev/PresentMon / commit_

Method commit_

IntelPresentMon/CommonUtilities/log/EntryBuilder.cpp:180–215  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

178 return EntryStream{ *this };
179 }
180 void EntryBuilder::commit_() noexcept
181 {
182 try {
183 if (pDest_) {
184 auto tracing = captureTrace_.value_or((int)level_ <= (int)GlobalPolicy::Get().GetTraceLevel());
185 // do line override check
186 if (LineTable::GetTraceOverride()) {
187 if (auto pEntry = LineTable::TryLookup(GetSourceFileName(), sourceLine_)) {
188 switch (pEntry->traceOverride_) {
189 case LineTable::TraceOverride::ForceOn: tracing = true; break;
190 case LineTable::TraceOverride::ForceOff: tracing = false; break;
191 }
192 }
193 }
194 if (tracing) {
195 try {
196 pTrace_ = StackTrace::Here(traceSkipDepth_);
197 if (GlobalPolicy::Get().GetResolveTraceInClientThread()) {
198 pTrace_->Resolve();
199 }
200 }
201 catch (...) {
202 pmlog_panic_("Failed to get current stacktrace");
203 }
204 }
205 pDest_->Submit(std::move(*this));
206 }
207 else {
208 pmlog_panic_("Log entry completed with no destination channel set");
209 }
210 }
211 catch (...) {
212 pmlog_panic_("Error when completing log entry");
213 }
214 committed_ = true;
215 }
216 EntryBuilder::~EntryBuilder()
217 {
218 if (!committed_) {

Callers

nothing calls this directly

Calls 4

GetTraceLevelMethod · 0.80
ResolveMethod · 0.45
SubmitMethod · 0.45

Tested by

no test coverage detected