Flutter Impeller
impeller::CaptureContext Class Reference

#include <capture.h>

Public Member Functions

 CaptureContext ()
 
bool IsActive () const
 
void Rewind ()
 
Capture GetDocument (const std::string &label)
 
bool DoesDocumentExist (const std::string &label) const
 

Static Public Member Functions

static CaptureContext MakeInactive ()
 
static CaptureContext MakeAllowlist (std::initializer_list< std::string > allowlist)
 

Detailed Description

Definition at line 269 of file capture.h.

Constructor & Destructor Documentation

◆ CaptureContext()

impeller::CaptureContext::CaptureContext ( )

CaptureContext

Definition at line 149 of file capture.cc.

149 {}

Referenced by MakeAllowlist(), and MakeInactive().

Member Function Documentation

◆ DoesDocumentExist()

bool impeller::CaptureContext::DoesDocumentExist ( const std::string &  label) const

Definition at line 209 of file capture.cc.

209  {
210 #ifdef IMPELLER_ENABLE_CAPTURE
211  if (!active_) {
212  return false;
213  }
214  return documents_.find(label) != documents_.end();
215 #else
216  return false;
217 #endif
218 }

◆ GetDocument()

Capture impeller::CaptureContext::GetDocument ( const std::string &  label)

Definition at line 182 of file capture.cc.

182  {
183 #ifdef IMPELLER_ENABLE_CAPTURE
184  if (!active_) {
185  return Capture::MakeInactive();
186  }
187 
188  if (allowlist_.has_value()) {
189  if (allowlist_->find(label) == allowlist_->end()) {
190  return Capture::MakeInactive();
191  }
192  }
193 
194  auto found = documents_.find(label);
195  if (found != documents_.end()) {
196  // Always rewind when fetching an existing document.
197  found->second.Rewind();
198  return found->second;
199  }
200 
201  auto new_document = Capture(label);
202  documents_.emplace(label, new_document);
203  return new_document;
204 #else
205  return Capture::MakeInactive();
206 #endif
207 }

References impeller::Capture::MakeInactive().

◆ IsActive()

bool impeller::CaptureContext::IsActive ( ) const

Definition at line 164 of file capture.cc.

164  {
165 #ifdef IMPELLER_ENABLE_CAPTURE
166  return active_;
167 #else
168  return false;
169 #endif
170 }

◆ MakeAllowlist()

CaptureContext impeller::CaptureContext::MakeAllowlist ( std::initializer_list< std::string >  allowlist)
static

Definition at line 159 of file capture.cc.

160  {
161  return CaptureContext(allowlist);
162 }

References CaptureContext().

Referenced by impeller::AiksInspector::RenderInspector(), and impeller::testing::TEST_P().

◆ MakeInactive()

CaptureContext impeller::CaptureContext::MakeInactive ( )
static

Definition at line 155 of file capture.cc.

155  {
156  return CaptureContext(InactiveFlag{});
157 }

References CaptureContext().

Referenced by impeller::AiksInspector::RenderInspector().

◆ Rewind()

void impeller::CaptureContext::Rewind ( )

Definition at line 172 of file capture.cc.

172  {
173 #ifdef IMPELLER_ENABLE_CAPTURE
174  for (auto& [name, capture] : documents_) {
175  capture.GetElement()->Rewind();
176  }
177 #else
178  return;
179 #endif
180 }

The documentation for this class was generated from the following files:
impeller::Capture::MakeInactive
static Capture MakeInactive()
Definition: capture.cc:101
impeller::CaptureContext::CaptureContext
CaptureContext()
Definition: capture.cc:149