Flutter Engine
 
Loading...
Searching...
No Matches
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
10
11namespace impeller {
12
13static std::atomic_int32_t sValidationLogsDisabledCount = 0;
14static std::atomic_int32_t sValidationLogsAreFatal = 0;
16
20
24
28
32
36
40
41ValidationLog::ValidationLog(const char* file, int line)
42 : file_(file), line_(line) {}
43
46 ImpellerValidationBreak(stream_.str().c_str(), file_, line_);
47 }
48}
49
50std::ostream& ValidationLog::GetStream() {
51 return stream_;
52}
53
54void ImpellerValidationBreak(const char* message, const char* file, int line) {
57 return;
58 }
59 const auto severity =
61 auto fml_log = fml::LogMessage{severity, file, line, nullptr};
62 fml_log.stream() <<
63#if FLUTTER_RELEASE
64 "Impeller validation: " << message;
65#else // FLUTTER_RELEASE
66 "Break on '" << __FUNCTION__
67 << "' to inspect point of failure: " << message;
68#endif // FLUTTER_RELEASE
69}
70
74
75} // namespace impeller
std::ostream & stream()
Definition logging.h:40
ValidationLog(const char *file, int line)
Definition validation.cc:41
std::ostream & GetStream()
Definition validation.cc:50
G_BEGIN_DECLS GBytes * message
FlutterDesktopBinaryReply callback
constexpr LogSeverity LOG_ERROR
Definition log_level.h:35
constexpr LogSeverity LOG_FATAL
Definition log_level.h:45
std::function< bool(const char *message, const char *file, int line)> ValidationFailureCallback
Definition validation.h:42
void ImpellerValidationBreak(const char *message, const char *file, int line)
Definition validation.cc:54
static ValidationFailureCallback sValidationFailureCallback
Definition validation.cc:15
void ImpellerValidationErrorsSetCallback(ValidationFailureCallback callback)
Sets a callback that callers (usually tests) can set to intercept validation failures.
Definition validation.cc:21
bool ImpellerValidationErrorsAreFatal()
Definition validation.cc:71
static std::atomic_int32_t sValidationLogsAreFatal
Definition validation.cc:14
void ImpellerValidationErrorsSetFatal(bool fatal)
Definition validation.cc:17
static std::atomic_int32_t sValidationLogsDisabledCount
Definition validation.cc:13