OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 // @file | 5 // @file |
6 // ExecutorsManager implementation, an object to keep track of the | 6 // ExecutorsManager implementation, an object to keep track of the |
7 // CeeeExecutor objects that were instantiated in destination threads. | 7 // CeeeExecutor objects that were instantiated in destination threads. |
8 | 8 |
9 #ifndef CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ | 9 #ifndef CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ |
10 #define CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ | 10 #define CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ |
11 | 11 |
12 #include <atlbase.h> | 12 #include <atlbase.h> |
13 #include <atlcom.h> | 13 #include <atlcom.h> |
14 #include <map> | 14 #include <map> |
15 #include <list> | 15 #include <list> |
16 | 16 |
17 #include "base/lock.h" | 17 #include "base/lock.h" |
18 #include "base/singleton.h" | 18 #include "base/singleton.h" |
19 #include "base/task.h" | |
20 #include "ceee/common/window_utils.h" | 19 #include "ceee/common/window_utils.h" |
21 #include "ceee/ie/broker/window_events_funnel.h" | 20 #include "ceee/ie/broker/window_events_funnel.h" |
22 | 21 |
23 #include "toolband.h" // NOLINT | 22 #include "toolband.h" // NOLINT |
24 | 23 |
25 // This class is to be used as a single instance for the broker module to | 24 // This class is to be used as a single instance for the broker module to |
26 // hold on a map of executor objects per thread that won't go away when | 25 // hold on a map of executor objects per thread that won't go away when |
27 // the instance of the Broker object does. | 26 // the instance of the Broker object does. |
28 // | 27 // |
29 // See the @ref ExecutorsManagerDoc page for more details. | 28 // See the @ref ExecutorsManagerDoc page for more details. |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 // @return The corresponding HWND (or INVALID_HANDLE_VALUE if tool_band_id | 113 // @return The corresponding HWND (or INVALID_HANDLE_VALUE if tool_band_id |
115 // isn't found). | 114 // isn't found). |
116 virtual HWND GetTabHandleFromToolBandId(int tool_band_id); | 115 virtual HWND GetTabHandleFromToolBandId(int tool_band_id); |
117 | 116 |
118 // Register the relation between a tool band tab ID and an HWND. | 117 // Register the relation between a tool band tab ID and an HWND. |
119 virtual void SetTabToolBandIdForHandle(int tool_band_id, HWND tab_handle); | 118 virtual void SetTabToolBandIdForHandle(int tool_band_id, HWND tab_handle); |
120 | 119 |
121 // Unregister the HWND and its corresponding tab ID and tool band tab ID. | 120 // Unregister the HWND and its corresponding tab ID and tool band tab ID. |
122 virtual void DeleteTabHandle(HWND handle); | 121 virtual void DeleteTabHandle(HWND handle); |
123 | 122 |
124 // Cleans up the maps from all handles that would be associated to the given | |
125 // thread id. | |
126 virtual void CleanupMapsForThread(DWORD thread_id); | |
127 | |
128 // Traits for Singleton<ExecutorsManager> so that we can pass an argument | 123 // Traits for Singleton<ExecutorsManager> so that we can pass an argument |
129 // to the constructor. | 124 // to the constructor. |
130 struct SingletonTraits : public DefaultSingletonTraits<ExecutorsManager> { | 125 struct SingletonTraits : public DefaultSingletonTraits<ExecutorsManager> { |
131 static ExecutorsManager* New() { | 126 static ExecutorsManager* New() { |
132 if (test_instance_) | 127 if (test_instance_) |
133 return test_instance_; | 128 return test_instance_; |
134 else | 129 else |
135 return new ExecutorsManager(false); // By default, we want a thread. | 130 return new ExecutorsManager(false); // By default, we want a thread. |
136 } | 131 } |
137 }; | 132 }; |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 return windows_events_funnel_; | 252 return windows_events_funnel_; |
258 } | 253 } |
259 | 254 |
260 // Test seam too. | 255 // Test seam too. |
261 static ExecutorsManager* test_instance_; | 256 static ExecutorsManager* test_instance_; |
262 | 257 |
263 DISALLOW_COPY_AND_ASSIGN(ExecutorsManager); | 258 DISALLOW_COPY_AND_ASSIGN(ExecutorsManager); |
264 }; | 259 }; |
265 | 260 |
266 #endif // CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ | 261 #endif // CEEE_IE_BROKER_EXECUTORS_MANAGER_H_ |
OLD | NEW |