| OLD | NEW | 
|    1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #ifndef BASE_OBSERVER_LIST_THREADSAFE_H_ |    5 #ifndef BASE_OBSERVER_LIST_THREADSAFE_H_ | 
|    6 #define BASE_OBSERVER_LIST_THREADSAFE_H_ |    6 #define BASE_OBSERVER_LIST_THREADSAFE_H_ | 
|    7  |    7  | 
|    8 #include <algorithm> |    8 #include <algorithm> | 
|    9 #include <map> |    9 #include <map> | 
|   10  |   10  | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   60 class ObserverListThreadSafe; |   60 class ObserverListThreadSafe; | 
|   61  |   61  | 
|   62 namespace internal { |   62 namespace internal { | 
|   63  |   63  | 
|   64 // An UnboundMethod is a wrapper for a method where the actual object is |   64 // An UnboundMethod is a wrapper for a method where the actual object is | 
|   65 // provided at Run dispatch time. |   65 // provided at Run dispatch time. | 
|   66 template <class T, class Method, class Params> |   66 template <class T, class Method, class Params> | 
|   67 class UnboundMethod { |   67 class UnboundMethod { | 
|   68  public: |   68  public: | 
|   69   UnboundMethod(Method m, const Params& p) : m_(m), p_(p) { |   69   UnboundMethod(Method m, const Params& p) : m_(m), p_(p) { | 
|   70     COMPILE_ASSERT( |   70     static_assert((internal::ParamsUseScopedRefptrCorrectly<Params>::value), | 
|   71         (internal::ParamsUseScopedRefptrCorrectly<Params>::value), |   71                   "bad unbound method params"); | 
|   72         badunboundmethodparams); |  | 
|   73   } |   72   } | 
|   74   void Run(T* obj) const { |   73   void Run(T* obj) const { | 
|   75     DispatchToMethod(obj, m_, p_); |   74     DispatchToMethod(obj, m_, p_); | 
|   76   } |   75   } | 
|   77  private: |   76  private: | 
|   78   Method m_; |   77   Method m_; | 
|   79   Params p_; |   78   Params p_; | 
|   80 }; |   79 }; | 
|   81  |   80  | 
|   82 }  // namespace internal |   81 }  // namespace internal | 
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  264   mutable Lock list_lock_;  // Protects the observer_lists_. |  263   mutable Lock list_lock_;  // Protects the observer_lists_. | 
|  265   ObserversListMap observer_lists_; |  264   ObserversListMap observer_lists_; | 
|  266   const NotificationType type_; |  265   const NotificationType type_; | 
|  267  |  266  | 
|  268   DISALLOW_COPY_AND_ASSIGN(ObserverListThreadSafe); |  267   DISALLOW_COPY_AND_ASSIGN(ObserverListThreadSafe); | 
|  269 }; |  268 }; | 
|  270  |  269  | 
|  271 }  // namespace base |  270 }  // namespace base | 
|  272  |  271  | 
|  273 #endif  // BASE_OBSERVER_LIST_THREADSAFE_H_ |  272 #endif  // BASE_OBSERVER_LIST_THREADSAFE_H_ | 
| OLD | NEW |