From a52ab741019342fbca0468e43a01deb44fa5f1bd Mon Sep 17 00:00:00 2001 From: dsinclair Date: Thu, 29 Sep 2016 13:59:29 -0700 Subject: Move core/fxcrt/include to core/fxcrt BUG=pdfium:611 Review-Url: https://codereview.chromium.org/2382723003 --- core/fxcrt/include/cfx_observable.h | 78 ------------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 core/fxcrt/include/cfx_observable.h (limited to 'core/fxcrt/include/cfx_observable.h') diff --git a/core/fxcrt/include/cfx_observable.h b/core/fxcrt/include/cfx_observable.h deleted file mode 100644 index a5053f3952..0000000000 --- a/core/fxcrt/include/cfx_observable.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2016 PDFium 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 CORE_FXCRT_INCLUDE_CFX_OBSERVABLE_H_ -#define CORE_FXCRT_INCLUDE_CFX_OBSERVABLE_H_ - -#include - -#include "core/fxcrt/include/fx_system.h" -#include "third_party/base/stl_util.h" - -template -class CFX_Observable { - public: - class ObservedPtr { - public: - ObservedPtr() : m_pObservedPtr(nullptr) {} - explicit ObservedPtr(T* pObservedPtr) : m_pObservedPtr(pObservedPtr) { - if (m_pObservedPtr) - m_pObservedPtr->AddObservedPtr(this); - } - ObservedPtr(const ObservedPtr& that) = delete; - ~ObservedPtr() { - if (m_pObservedPtr) - m_pObservedPtr->RemoveObservedPtr(this); - } - void Reset(T* pObservedPtr = nullptr) { - if (m_pObservedPtr) - m_pObservedPtr->RemoveObservedPtr(this); - m_pObservedPtr = pObservedPtr; - if (m_pObservedPtr) - m_pObservedPtr->AddObservedPtr(this); - } - void OnDestroy() { - ASSERT(m_pObservedPtr); - m_pObservedPtr = nullptr; - } - ObservedPtr& operator=(const ObservedPtr& that) = delete; - bool operator==(const ObservedPtr& that) const { - return m_pObservedPtr == that.m_pObservedPtr; - } - bool operator!=(const ObservedPtr& that) const { return !(*this == that); } - explicit operator bool() const { return !!m_pObservedPtr; } - T* Get() const { return m_pObservedPtr; } - T& operator*() const { return *m_pObservedPtr; } - T* operator->() const { return m_pObservedPtr; } - - private: - T* m_pObservedPtr; - }; - - CFX_Observable() {} - CFX_Observable(const CFX_Observable& that) = delete; - ~CFX_Observable() { NotifyObservedPtrs(); } - void AddObservedPtr(ObservedPtr* pObservedPtr) { - ASSERT(!pdfium::ContainsKey(m_ObservedPtrs, pObservedPtr)); - m_ObservedPtrs.insert(pObservedPtr); - } - void RemoveObservedPtr(ObservedPtr* pObservedPtr) { - ASSERT(pdfium::ContainsKey(m_ObservedPtrs, pObservedPtr)); - m_ObservedPtrs.erase(pObservedPtr); - } - void NotifyObservedPtrs() { - for (auto* pObservedPtr : m_ObservedPtrs) - pObservedPtr->OnDestroy(); - m_ObservedPtrs.clear(); - } - CFX_Observable& operator=(const CFX_Observable& that) = delete; - - protected: - size_t ActiveObservedPtrsForTesting() const { return m_ObservedPtrs.size(); } - - private: - std::set m_ObservedPtrs; -}; - -#endif // CORE_FXCRT_INCLUDE_CFX_OBSERVABLE_H_ -- cgit v1.2.3