// Copyright (c) 2006-2008 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 BASE_NON_THREAD_SAFE_H__
#define BASE_NON_THREAD_SAFE_H__

#include "base/logging.h"

// A helper class used to help verify that methods of a class are
// called from the same thread.  One can inherit from this class and use
// CalledOnValidThread() to verify.
//
// This is intended to be used with classes that appear to be thread safe, but
// aren't.  For example, a service or a singleton like the preferences system.
//
// Example:
// class MyClass : public NonThreadSafe {
//  public:
//   void Foo() {
//     DCHECK(CalledOnValidThread());
//     ... (do stuff) ...
//   }
// }
//
// In Release mode, CalledOnValidThread will always return true.
//
#ifndef NDEBUG
class NonThreadSafe {
 public:
  NonThreadSafe();
  ~NonThreadSafe();

 protected:
  bool CalledOnValidThread() const;

 private:
  int valid_thread_id_;
};
#else
// Do nothing in release mode.
class NonThreadSafe {
 public:
  NonThreadSafe() {}
  ~NonThreadSafe() {}

 protected:
  bool CalledOnValidThread() const {
    return true;
  }
};
#endif  // NDEBUG

#endif  // BASE_NON_THREAD_SAFE_H__

