本文整理汇总了C++中pushCurrentRecord函数的典型用法代码示例。如果您正苦于以下问题:C++ pushCurrentRecord函数的具体用法?C++ pushCurrentRecord怎么用?C++ pushCurrentRecord使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pushCurrentRecord函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PLATFORM
void InspectorTimelineAgent::internalStart(const int* maxCallStackDepth)
{
if (m_enabled)
return;
if (maxCallStackDepth && *maxCallStackDepth > 0)
m_maxCallStackDepth = *maxCallStackDepth;
else
m_maxCallStackDepth = 5;
m_instrumentingAgents.setInspectorTimelineAgent(this);
if (m_scriptDebugServer)
m_scriptDebugServer->addListener(this);
m_enabled = true;
// FIXME: Abstract away platform-specific code once https://bugs.webkit.org/show_bug.cgi?id=142748 is fixed.
#if PLATFORM(COCOA)
m_frameStartObserver = RunLoopObserver::create(0, [this]() {
if (!m_enabled || m_scriptDebugServer->isPaused())
return;
if (!m_runLoopNestingLevel)
pushCurrentRecord(InspectorObject::create(), TimelineRecordType::RenderingFrame, false, nullptr);
m_runLoopNestingLevel++;
});
m_frameStopObserver = RunLoopObserver::create(frameStopRunLoopOrder, [this]() {
if (!m_enabled || m_scriptDebugServer->isPaused())
return;
ASSERT(m_runLoopNestingLevel > 0);
m_runLoopNestingLevel--;
if (m_runLoopNestingLevel)
return;
if (m_startedComposite)
didComposite();
didCompleteCurrentRecord(TimelineRecordType::RenderingFrame);
});
m_frameStartObserver->schedule(currentRunLoop(), kCFRunLoopEntry | kCFRunLoopAfterWaiting);
m_frameStopObserver->schedule(currentRunLoop(), kCFRunLoopExit | kCFRunLoopBeforeWaiting);
// Create a runloop record and increment the runloop nesting level, to capture the current turn of the main runloop
// (which is the outer runloop if recording started while paused in the debugger).
pushCurrentRecord(InspectorObject::create(), TimelineRecordType::RenderingFrame, false, nullptr);
m_runLoopNestingLevel = 1;
#endif
m_frontendDispatcher->recordingStarted(timestamp());
}
示例2: pushCurrentRecord
void InspectorTimelineAgent::willCallFunction(const String& scriptName, int scriptLine, Frame* frame)
{
pushCurrentRecord(TimelineRecordFactory::createFunctionCallData(scriptName, scriptLine), TimelineRecordType::FunctionCall, true, frame);
if (frame && !m_callStackDepth)
startProfiling(frame, ASCIILiteral("Timeline FunctionCall"), m_instrumentingAgents.inspectorEnvironment().executionStopwatch());
++m_callStackDepth;
}
示例3: pushCurrentRecord
void InspectorTimelineAgent::willEvaluateScript(const String& url, int lineNumber, Frame* frame)
{
pushCurrentRecord(TimelineRecordFactory::createEvaluateScriptData(url, lineNumber), TimelineRecordType::EvaluateScript, true, frame);
if (frame && !m_recordingProfile) {
m_recordingProfile = true;
startProfiling(frame, ASCIILiteral("Timeline EvaluateScript"));
}
}
示例4: ASSERT
void InspectorTimelineAgent::willComposite(Frame& frame)
{
ASSERT(!m_startedComposite);
pushCurrentRecord(InspectorObject::create(), TimelineRecordType::Composite, true, &frame);
m_startedComposite = true;
}
示例5: pushCurrentRecord
void InspectorTimelineAgent::willResizeImage(bool shouldCache)
{
pushCurrentRecord(TimelineRecordFactory::createResizeImageData(shouldCache), TimelineRecordType::ResizeImage, true, 0);
}