| Index: tools/clang/blink_gc_plugin/TracingStatus.h
 | 
| diff --git a/tools/clang/blink_gc_plugin/TracingStatus.h b/tools/clang/blink_gc_plugin/TracingStatus.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..9eb1080de85d13845a910530b559d739883ebe6b
 | 
| --- /dev/null
 | 
| +++ b/tools/clang/blink_gc_plugin/TracingStatus.h
 | 
| @@ -0,0 +1,29 @@
 | 
| +// Copyright 2014 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#ifndef TOOLS_BLINK_GC_PLUGIN_TRACING_STATUS_H_
 | 
| +#define TOOLS_BLINK_GC_PLUGIN_TRACING_STATUS_H_
 | 
| +
 | 
| +// TracingStatus is a three-point value ordered by unneeded < unknown < needed.
 | 
| +class TracingStatus {
 | 
| + public:
 | 
| +  static TracingStatus Unneeded() { return kUnneeded; }
 | 
| +  static TracingStatus Unknown() { return kUnknown; }
 | 
| +  static TracingStatus Needed() { return kNeeded; }
 | 
| +  bool IsUnneeded() const { return status_ == kUnneeded; }
 | 
| +  bool IsUnknown() const { return status_ == kUnknown; }
 | 
| +  bool IsNeeded() const { return status_ == kNeeded; }
 | 
| +  TracingStatus LUB(const TracingStatus& other) const {
 | 
| +    return status_ > other.status_ ? status_ : other.status_;
 | 
| +  }
 | 
| +  bool operator==(const TracingStatus& other) const {
 | 
| +    return status_ == other.status_;
 | 
| +  }
 | 
| + private:
 | 
| +  enum Status { kUnneeded, kUnknown, kNeeded };
 | 
| +  TracingStatus(Status status) : status_(status) {}
 | 
| +  Status status_;
 | 
| +};
 | 
| +
 | 
| +#endif // TOOLS_BLINK_GC_PLUGIN_TRACING_STATUS_H_
 | 
| 
 |