// Copyright (c) 2012 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 CHROME_BROWSER_CHROMEOS_MEMORY_LOW_MEMORY_OBSERVER_H_ #define CHROME_BROWSER_CHROMEOS_MEMORY_LOW_MEMORY_OBSERVER_H_ #include "base/memory/ref_counted.h" namespace chromeos { class LowMemoryObserverImpl; //////////////////////////////////////////////////////////////////////////////// // LowMemoryObserver // // Class to handle observation of low memory device for changes so that we // can get a signal from the kernel about low memory conditions and discard tabs // when that happens, instead of waiting for the OOM killer to kill renderers // (which is more drastic, but still necessary and possible). // // This object starts and stops the observation, and can be created or deleted // from any thread, but the observation occurs on the FILE thread, and tabs are // discarded on the UI thread. class LowMemoryObserver { public: LowMemoryObserver(); ~LowMemoryObserver(); void Start(); void Stop(); private: scoped_refptr<LowMemoryObserverImpl> observer_; DISALLOW_COPY_AND_ASSIGN(LowMemoryObserver); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_MEMORY_LOW_MEMORY_OBSERVER_H_