|
ReXGlue SDK
|
Public Member Functions | |
| NotifyListenerObject (u64 mask_in, u32 max_version_in) | |
| void | Enqueue (XNotificationID id, u32 data) |
| bool | DequeueByID (XNotificationID id, u32 *out_data) override |
| bool | Dequeue (XNotificationID *out_id, u32 *out_data) override |
Public Attributes | |
| std::unique_ptr< rex::platform::Event > | wait_handle |
| std::mutex | notifications_lock |
| std::vector< std::pair< XNotificationID, u32 > > | notifications |
| u64 | mask = 0 |
| u32 | max_version = 0 |
| rex::kernel::NotifyListenerObject::NotifyListenerObject | ( | u64 | mask_in, |
| u32 | max_version_in ) |
| mask_in | The bit mask of notification areas the listener receives. |
| max_version_in | The highest notification version the listener receives. |
|
overridevirtual |
Removes the oldest notification.
| out_id | Receives the ID. |
| out_data | Receives the data. |
Implements rex::kernel::INotifyListenerQueue.
|
overridevirtual |
Removes the oldest notification with a given ID.
| out_data | Receives the data. |
Implements rex::kernel::INotifyListenerQueue.
| void rex::kernel::NotifyListenerObject::Enqueue | ( | XNotificationID | id, |
| u32 | data ) |
Queues a notification when it matches the mask and version of the listener.
| u64 rex::kernel::NotifyListenerObject::mask = 0 |
Bit mask of notification areas, bit N admits IDs whose mask_index is N.
| u32 rex::kernel::NotifyListenerObject::max_version = 0 |
Highest notification version admitted, a higher version is discarded.
| std::vector<std::pair<XNotificationID, u32> > rex::kernel::NotifyListenerObject::notifications |
Queued notifications in arrival order, each with its ID and data.
| std::unique_ptr<rex::platform::Event> rex::kernel::NotifyListenerObject::wait_handle |
Manual reset event set while notifications is not empty.