X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ba1d7a6cec8d9569ce2e380d4a39ddcd4450c9b5..b02dd12239c8a59b9a545d9fcb04974f8ad02c6b:/interface/wx/msgqueue.h?ds=sidebyside diff --git a/interface/wx/msgqueue.h b/interface/wx/msgqueue.h index 5a6347f794..376625a3f0 100644 --- a/interface/wx/msgqueue.h +++ b/interface/wx/msgqueue.h @@ -1,29 +1,57 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msgqueue.h +// Name: wx/msgqueue.h // Purpose: interface of wxMessageQueue // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// 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. - For this class a message is an object of arbitrary type T. + @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{misc} + @category{threading} @see wxThread */ +template class wxMessageQueue { public: @@ -33,6 +61,17 @@ public: */ 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.