OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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_MESSAGE_LOOP_H_ | 5 #ifndef BASE_MESSAGE_LOOP_H_ |
6 #define BASE_MESSAGE_LOOP_H_ | 6 #define BASE_MESSAGE_LOOP_H_ |
7 | 7 |
8 #include <deque> | 8 #include <deque> |
9 #include <queue> | 9 #include <queue> |
10 #include <string> | 10 #include <string> |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 public: | 249 public: |
250 AutoRunState(MessageLoop* loop); | 250 AutoRunState(MessageLoop* loop); |
251 ~AutoRunState(); | 251 ~AutoRunState(); |
252 private: | 252 private: |
253 MessageLoop* loop_; | 253 MessageLoop* loop_; |
254 RunState* previous_state_; | 254 RunState* previous_state_; |
255 }; | 255 }; |
256 | 256 |
257 // This structure is copied around by value. | 257 // This structure is copied around by value. |
258 struct PendingTask { | 258 struct PendingTask { |
259 Task* task; // The task to run. | 259 Task* task; // The task to run. |
260 Time delayed_run_time; // The time when the task should be run. | 260 base::Time delayed_run_time; // The time when the task should be run. |
261 int sequence_num; // Used to facilitate sorting by run time. | 261 int sequence_num; // Used to facilitate sorting by run time. |
262 bool nestable; // True if OK to dispatch from a nested loop. | 262 bool nestable; // True if OK to dispatch from a nested loop. |
263 | 263 |
264 PendingTask(Task* task, bool nestable) | 264 PendingTask(Task* task, bool nestable) |
265 : task(task), sequence_num(0), nestable(nestable) { | 265 : task(task), sequence_num(0), nestable(nestable) { |
266 } | 266 } |
267 | 267 |
268 // Used to support sorting. | 268 // Used to support sorting. |
269 bool operator<(const PendingTask& other) const; | 269 bool operator<(const PendingTask& other) const; |
270 }; | 270 }; |
271 | 271 |
272 typedef std::queue<PendingTask> TaskQueue; | 272 typedef std::queue<PendingTask> TaskQueue; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 // destructor to make sure all the task's destructors get called. Returns | 327 // destructor to make sure all the task's destructors get called. Returns |
328 // true if some work was done. | 328 // true if some work was done. |
329 bool DeletePendingTasks(); | 329 bool DeletePendingTasks(); |
330 | 330 |
331 // Post a task to our incomming queue. | 331 // Post a task to our incomming queue. |
332 void PostTask_Helper(const tracked_objects::Location& from_here, Task* task, | 332 void PostTask_Helper(const tracked_objects::Location& from_here, Task* task, |
333 int delay_ms, bool nestable); | 333 int delay_ms, bool nestable); |
334 | 334 |
335 // base::MessagePump::Delegate methods: | 335 // base::MessagePump::Delegate methods: |
336 virtual bool DoWork(); | 336 virtual bool DoWork(); |
337 virtual bool DoDelayedWork(Time* next_delayed_work_time); | 337 virtual bool DoDelayedWork(base::Time* next_delayed_work_time); |
338 virtual bool DoIdleWork(); | 338 virtual bool DoIdleWork(); |
339 | 339 |
340 // Start recording histogram info about events and action IF it was enabled | 340 // Start recording histogram info about events and action IF it was enabled |
341 // and IF the statistics recorder can accept a registration of our histogram. | 341 // and IF the statistics recorder can accept a registration of our histogram. |
342 void StartHistogrammer(); | 342 void StartHistogrammer(); |
343 | 343 |
344 // Add occurence of event to our histogram, so that we can see what is being | 344 // Add occurence of event to our histogram, so that we can see what is being |
345 // done in a specific MessageLoop instance (i.e., specific thread). | 345 // done in a specific MessageLoop instance (i.e., specific thread). |
346 // If message_histogram_ is NULL, this is a no-op. | 346 // If message_histogram_ is NULL, this is a no-op. |
347 void HistogramEvent(int event); | 347 void HistogramEvent(int event); |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 #endif // defined(OS_POSIX) | 482 #endif // defined(OS_POSIX) |
483 }; | 483 }; |
484 | 484 |
485 // Do not add any member variables to MessageLoopForIO! This is important b/c | 485 // Do not add any member variables to MessageLoopForIO! This is important b/c |
486 // MessageLoopForIO is often allocated via MessageLoop(TYPE_IO). Any extra | 486 // MessageLoopForIO is often allocated via MessageLoop(TYPE_IO). Any extra |
487 // data that you need should be stored on the MessageLoop's pump_ instance. | 487 // data that you need should be stored on the MessageLoop's pump_ instance. |
488 COMPILE_ASSERT(sizeof(MessageLoop) == sizeof(MessageLoopForIO), | 488 COMPILE_ASSERT(sizeof(MessageLoop) == sizeof(MessageLoopForIO), |
489 MessageLoopForIO_should_not_have_extra_member_variables); | 489 MessageLoopForIO_should_not_have_extra_member_variables); |
490 | 490 |
491 #endif // BASE_MESSAGE_LOOP_H_ | 491 #endif // BASE_MESSAGE_LOOP_H_ |
OLD | NEW |