Flutter Engine
The Flutter Engine
logger.h
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
5#ifndef FLUTTER_IMPELLER_COMPILER_LOGGER_H_
6#define FLUTTER_IMPELLER_COMPILER_LOGGER_H_
7
8#include <sstream>
9#include <string>
10
11#include "flutter/fml/logging.h"
12
13namespace impeller {
14namespace compiler {
15
17 public:
18 explicit AutoLogger(std::stringstream& logger) : logger_(logger) {}
19
21 logger_ << std::endl;
22 logger_.flush();
23 }
24
25 template <class T>
26 AutoLogger& operator<<(const T& object) {
27 logger_ << object;
28 return *this;
29 }
30
31 private:
32 std::stringstream& logger_;
33
34 AutoLogger(const AutoLogger&) = delete;
35
36 AutoLogger& operator=(const AutoLogger&) = delete;
37};
38
39#define COMPILER_ERROR(stream) \
40 ::impeller::compiler::AutoLogger(stream) << GetSourcePrefix()
41
42#define COMPILER_ERROR_NO_PREFIX(stream) \
43 ::impeller::compiler::AutoLogger(stream)
44
45} // namespace compiler
46} // namespace impeller
47
48#endif // FLUTTER_IMPELLER_COMPILER_LOGGER_H_
AutoLogger(std::stringstream &logger)
Definition: logger.h:18
AutoLogger & operator<<(const T &object)
Definition: logger.h:26
#define T
Definition: precompiler.cc:65