1226586Sdim//===--- CheckerOptInfo.h - Specifies which checkers to use -----*- C++ -*-===//
2226586Sdim//
3226586Sdim//                     The LLVM Compiler Infrastructure
4226586Sdim//
5226586Sdim// This file is distributed under the University of Illinois Open Source
6226586Sdim// License. See LICENSE.TXT for details.
7226586Sdim//
8226586Sdim//===----------------------------------------------------------------------===//
9226586Sdim
10226586Sdim#ifndef LLVM_CLANG_STATICANALYZER_CORE_CHECKEROPTINFO_H
11226586Sdim#define LLVM_CLANG_STATICANALYZER_CORE_CHECKEROPTINFO_H
12226586Sdim
13226586Sdim#include "clang/Basic/LLVM.h"
14249423Sdim#include "llvm/ADT/StringRef.h"
15226586Sdim
16226586Sdimnamespace clang {
17226586Sdimnamespace ento {
18226586Sdim
19226586Sdim/// Represents a request to include or exclude a checker or package from a
20226586Sdim/// specific analysis run.
21226586Sdim///
22226586Sdim/// \sa CheckerRegistry::initializeManager
23226586Sdimclass CheckerOptInfo {
24226586Sdim  StringRef Name;
25226586Sdim  bool Enable;
26226586Sdim  bool Claimed;
27226586Sdim
28226586Sdimpublic:
29226586Sdim  CheckerOptInfo(StringRef name, bool enable)
30226586Sdim    : Name(name), Enable(enable), Claimed(false) { }
31226586Sdim
32226586Sdim  StringRef getName() const { return Name; }
33226586Sdim  bool isEnabled() const { return Enable; }
34226586Sdim  bool isDisabled() const { return !isEnabled(); }
35226586Sdim
36226586Sdim  bool isClaimed() const { return Claimed; }
37226586Sdim  bool isUnclaimed() const { return !isClaimed(); }
38226586Sdim  void claim() { Claimed = true; }
39226586Sdim};
40226586Sdim
41226586Sdim} // end namespace ento
42226586Sdim} // end namespace clang
43226586Sdim
44226586Sdim#endif
45