diff options
| author | Ilya Biryukov <ibiryukov@google.com> | 2017-09-20 07:24:15 +0000 |
|---|---|---|
| committer | Ilya Biryukov <ibiryukov@google.com> | 2017-09-20 07:24:15 +0000 |
| commit | e5128f7e9141d41ea8dea0cb0736bc7ceb666ff2 (patch) | |
| tree | 7602447f8bceae215cffed4ba126b809129c0ce4 /clang-tools-extra/clangd/Logger.h | |
| parent | 405e2dbf3767586ab06a8506a6f5754aeb5a613d (diff) | |
| download | bcm5719-llvm-e5128f7e9141d41ea8dea0cb0736bc7ceb666ff2.tar.gz bcm5719-llvm-e5128f7e9141d41ea8dea0cb0736bc7ceb666ff2.zip | |
[clangd] Introduced Logger interface.
Summary: This fixes a bunch of logging-related FIXMEs.
Reviewers: bkramer, krasimir, malaperle
Reviewed By: malaperle
Subscribers: malaperle, klimek, cfe-commits, mgorny
Differential Revision: https://reviews.llvm.org/D37972
llvm-svn: 313730
Diffstat (limited to 'clang-tools-extra/clangd/Logger.h')
| -rw-r--r-- | clang-tools-extra/clangd/Logger.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/clang-tools-extra/clangd/Logger.h b/clang-tools-extra/clangd/Logger.h new file mode 100644 index 00000000000..7cf05561433 --- /dev/null +++ b/clang-tools-extra/clangd/Logger.h @@ -0,0 +1,41 @@ +//===--- Logger.h - Logger interface for clangd ------------------*- C++-*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_LOGGER_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_LOGGER_H + +#include "llvm/ADT/Twine.h" + +namespace clang { +namespace clangd { + +/// Interface to allow custom logging in clangd. +class Logger { +public: + virtual ~Logger() = default; + + /// Implementations of this method must be thread-safe. + virtual void log(const llvm::Twine &Message) = 0; +}; + +/// Logger implementation that ignores all messages. +class EmptyLogger : public Logger { +public: + static EmptyLogger &getInstance(); + + void log(const llvm::Twine &Message) override; + +private: + EmptyLogger() = default; +}; + +} // namespace clangd +} // namespace clang + +#endif |

