Inheritance diagram for class svt_data_queue_iter:
Iterators that can be used to iterate over a queue of svt_data instances. This iterator actually includes the queue of objects to be iterated on in addition to the iterator.
Public Member Functions | |
| function svt_data_iter | allocate ( ) |
| function svt_data_iter | copy ( ) |
| function bit | first ( ) |
| function svt_data | get_data ( ) |
| function void | initialize ( svt_data_queue iter_q = null, svt_notify notify = null, int curr_ix = -1 ) |
| function void | initialize_notify ( svt_notify notify = null ) |
| function bit | is_ok ( ) |
| function bit | last ( ) |
| function int | length ( ) |
| function void | new ( svt_data_queue iter_q = null, svt_notify notify = null, vmm_log log = null ) |
| function bit | next ( ) |
| function int | pos ( ) |
| function bit | prev ( ) |
| function void | queue_changed ( svt_data_queue_iter :: change_type_enum change_type = BACK_ADD ) |
| function void | reset ( ) |
| task | wait_for_next ( ) |
| task | wait_for_prev ( ) |
Public Attributes | |
| int | EVENT_Q_CHANGED |
| svt_data_queue | iter_q |
Protected Attributes | |
| protected svt_data | curr_data = null; |
| protected int | curr_ix = -1; |
| protected svt_notify | notify |
Member Typedefs | |
| typedef enum | change_type_enum |
|
||||
Allocate a new instance of the iterator. The client must use copy to create a duplicate iterator working on the same information initialized to the same position.
| ||||
|
|
||||
Copy the iterator, putting the new iterator at the same position.
| ||||
|
|
||||
Move to the first element in the collection.
| ||||
|
|
||||
Access the svt_data object at the current position.
| ||||
|
|
||
|
||
Initializes the notify using the provided instance, or creates a new one if possible.
notify - svt_notify instance, possibly shared. |
|
||||
Evaluate whether the iterator is positioned on an element.
| ||||
|
|
||||
Move to the last element.
| ||||
|
|
||||
Get the number of elements.
| ||||
|
|
||
|
||||
Move to the next element.
| ||||
|
|
||||
Get the current postion within the overall length.
| ||||
|
|
||||
Move to the previous element.
| ||||
|
|
||
Called when the queue changes so the iterator can re-align itself and see if any waits can now proceed.
change_type - The type of queue change which occurred. |
|
||||
Reset the iterator.
| ||||
|
|
||||
Move to the next element, but only if there is a next element. If no next element exists (e.g., because the iterator is already on the last element) then the iterator will wait here until a new element is placed at the end of the list.
| ||||
|
|
||||
Move to the previous element, but only if there is a previous element. If no previous element exists (e.g., because the iterator is already on the first element) then the iterator will wait here until a new element is placed at the front of the list.
| ||||
|
|
|
Current data instance, used to re-align if there is a change to the queue.
|
|
|
Current iterator position.
|
|
|
Event triggered when the Queue is changed.
|
|
|
The queue the iterator is scanning.
|
|
|
svt_notify instance that can be shared between iterators.
|
|