Flutter Impeller
validation.cc
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
6 
7 #include <atomic>
8 
9 #include "flutter/fml/logging.h"
10 
11 namespace impeller {
12 
13 static std::atomic_int32_t sValidationLogsDisabledCount = 0;
14 static std::atomic_int32_t sValidationLogsAreFatal = 0;
15 
18 }
19 
22 }
23 
26 }
27 
30 }
31 
34 }
35 
37 
40  ImpellerValidationBreak(stream_.str().c_str());
41  }
42 }
43 
44 std::ostream& ValidationLog::GetStream() {
45  return stream_;
46 }
47 
48 void ImpellerValidationBreak(const char* message) {
49  std::stringstream stream;
50 #if FLUTTER_RELEASE
51  stream << "Impeller validation: " << message;
52 #else
53  stream << "Break on '" << __FUNCTION__
54  << "' to inspect point of failure: " << message;
55 #endif
56  if (sValidationLogsAreFatal > 0) {
57  FML_LOG(FATAL) << stream.str();
58  } else {
59  FML_LOG(ERROR) << stream.str();
60  }
61 }
62 
65 }
66 
67 } // namespace impeller
impeller::ImpellerValidationBreak
void ImpellerValidationBreak(const char *message)
Definition: validation.cc:48
impeller::ScopedValidationFatal::ScopedValidationFatal
ScopedValidationFatal()
Definition: validation.cc:28
impeller::sValidationLogsAreFatal
static std::atomic_int32_t sValidationLogsAreFatal
Definition: validation.cc:14
impeller::ScopedValidationDisable::~ScopedValidationDisable
~ScopedValidationDisable()
Definition: validation.cc:24
impeller::ScopedValidationFatal::~ScopedValidationFatal
~ScopedValidationFatal()
Definition: validation.cc:32
validation.h
impeller::ValidationLog::~ValidationLog
~ValidationLog()
Definition: validation.cc:38
impeller::ValidationLog::ValidationLog
ValidationLog()
impeller::ScopedValidationDisable::ScopedValidationDisable
ScopedValidationDisable()
Definition: validation.cc:20
impeller::sValidationLogsDisabledCount
static std::atomic_int32_t sValidationLogsDisabledCount
Definition: validation.cc:13
impeller::ImpellerValidationErrorsSetFatal
void ImpellerValidationErrorsSetFatal(bool fatal)
Definition: validation.cc:16
impeller::ImpellerValidationErrorsAreFatal
bool ImpellerValidationErrorsAreFatal()
Definition: validation.cc:63
impeller::ValidationLog::GetStream
std::ostream & GetStream()
Definition: validation.cc:44
impeller
Definition: aiks_blur_unittests.cc:20