| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/msgqueue.h
 
- // Purpose:     interface of wxMessageQueue<T>
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     Error codes for wxMessageQueue<> operations.
 
-     This enum contains the possible return value of wxMessageQueue<> methods.
 
-     @since 2.9.0
 
-     @category{threading}
 
-  */
 
- enum wxMessageQueueError
 
- {
 
-     /// Indicates that the operation completed successfully.
 
-     wxMSGQUEUE_NO_ERROR = 0,
 
-     /**
 
-         Indicates that no messages were received before timeout expired.
 
-         This return value is only used by wxMessageQueue<>::ReceiveTimeout().
 
-      */
 
-     wxMSGQUEUE_TIMEOUT,
 
-     /// Some unexpected (and fatal) error has occurred.
 
-     wxMSGQUEUE_MISC_ERROR
 
- };
 
- /**
 
-     wxMessageQueue allows passing messages between threads.
 
-     This class should be typically used to communicate between the main and worker
 
-     threads. The main thread calls wxMessageQueue::Post and the worker thread
 
-     calls wxMessageQueue::Receive.
 
-     @tparam T
 
-         For this class a message is an object of arbitrary type T.
 
-     Notice that often there is a some special message indicating that the thread
 
-     should terminate as there is no other way to gracefully shutdown a thread
 
-     waiting on the message queue.
 
-     @since 2.9.0
 
-     @nolibrary
 
-     @category{threading}
 
-     @see wxThread
 
- */
 
- template <typename T>
 
- class wxMessageQueue<T>
 
- {
 
- public:
 
-     /**
 
-         Default and only constructor.
 
-         Use wxMessageQueue::IsOk to check if the object was successfully initialized.
 
-     */
 
-     wxMessageQueue();
 
-     /**
 
-         Remove all messages from the queue.
 
-         This method is meant to be called from the same thread(s) that call
 
-         Post() to discard any still pending requests if they became
 
-         unnecessary.
 
-         @since 2.9.1
 
-      */
 
-     wxMessageQueueError Clear();
 
-     /**
 
-         Returns @true if the object had been initialized successfully, @false
 
-         if an error occurred.
 
-     */
 
-     bool IsOk() const;
 
-     /**
 
-         Add a message to this queue and signal the threads waiting for messages
 
-         (i.e. the threads which called wxMessageQueue::Receive or
 
-         wxMessageQueue::ReceiveTimeout).
 
-         This method is safe to call from multiple threads in parallel.
 
-     */
 
-     wxMessageQueueError Post(T const& msg);
 
-     /**
 
-         Block until a message becomes available in the queue.
 
-         Waits indefinitely long or until an error occurs.
 
-         The message is returned in @a msg.
 
-     */
 
-     wxMessageQueueError Receive(T& msg);
 
-     /**
 
-         Block until a message becomes available in the queue, but no more than
 
-         @a timeout milliseconds has elapsed.
 
-         If no message is available after @a timeout milliseconds then returns
 
-         @b wxMSGQUEUE_TIMEOUT.
 
-         If @a timeout is 0 then checks for any messages present in the queue
 
-         and returns immediately without waiting.
 
-         The message is returned in @a msg.
 
-     */
 
-     wxMessageQueueError ReceiveTimeout(long timeout, T& msg);
 
- };
 
 
  |