Inheritance diagram for class svt_transaction_iter:
Iterators that can be used to iterate over the implementation and trace collections stored with a transaction.
Public Member Functions | |
| function svt_data_iter | allocate ( ) |
| function bit | check_iter_level ( ) |
| function svt_data_iter | copy ( ) |
| function bit | first ( ) |
| function svt_data | get_data ( ) |
| function void | initialize ( svt_transaction iter_xact, svt_transaction_iter :: iter_type_enum iter_type = TRACE, svt_data name_match = null, bit scan_name_match_trace = 0, int start_ix = -1, int end_ix = -1, int top_level_ix = -1, svt_transaction_iter level_n_iter = null ) |
| function bit | is_ok ( ) |
| function bit | last ( ) |
| function void | new ( svt_transaction iter_xact, svt_transaction_iter :: iter_type_enum iter_type = TRACE, svt_data name_match = null, bit scan_name_match_trace = 1, int start_ix = -1, int end_ix = -1, vmm_log log = null ) |
| function bit | next ( ) |
| function bit | prev ( ) |
| function void | reset ( ) |
Public Attributes | |
| bit | scan_name_match_trace = 0; |
Protected Attributes | |
| protected int | end_ix = -1; |
| protected svt_transaction_iter :: iter_type_enum | iter_type |
| protected svt_transaction | iter_xact |
| protected svt_transaction_iter | level_n_iter = null; |
| protected svt_data | name_match = null; |
| protected int | start_ix = -1; |
| protected int | top_level_ix = -1; |
Member Typedefs | |
| typedef enum | iter_type_enum |
|
||||
Allocate a new instance of the iterator, setting it up to iterate on the same object in the same fashion. This creates a duplicate iterator on the same object, in the 'reset' position.
| ||||
|
|
||
Checks to see if the iterator is properly positioned on a data object.
|
|
||||
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 iterator using the provided information.
iter_xact - The base transaction the iterator is going to be scanning.
iter_type - Used to indicate whether the iteration should be over the IMPLEMENTATION queue or the TRACE queue.
name_match - This object, if provided, is used to recognize the proper scan depth as the iterator scans the objects in the specified collection. Whenever it gets a new object, it uses svt_data :: get_class_name to compare the basis for the two objects. If the compare succeeds, it goes no deeper with the scan and considers this the next iterator element. If the compare fails, then the scan moves into the corresponding collection on the object which it was unable to compare against. If this object is not provided the iterator assumes that it should do a one level scan.
scan_name_match_trace - If name_match is non-null and the name_match svt_transaction class has a trace queue then a setting of 1 will cause the iterator to traverse the trace array instead of the object itself. A setting of 0 will cause the iterator to just include the object in the iteration, not its trace. If name_match is null or it does not have a trace queue, then this field has no impact.
start_ix - Optional index into the transaction implementation or trace array, used to limit where the iteration starts within the corresponding queue. The default value of -1 indicates that the iteration starts at the first element in the corresponding queue.
end_ix - Optional index into the transaction implementation or trace array, used to limit where the iteration ends within the corresponding queue. The default value of -1 indicates that the iteration ends at the last element in the corresponding queue.
top_level_ix - This positions the top level iterator at this position.
level_n_iter - This sets this up as the internal iterator which is working on the internal object in support of the top level iterator. |
|
||||
Evaluate whether the iterator is positioned on an element.
| ||||
|
|
||||
Move to the last element.
| ||||
|
|
||
CONSTRUCTOR: Creates a new instance of the svt_transaction_iter class.
iter_xact - The base transaction the iterator is going to be scanning.
iter_type - Used to indicate whether the iteration should be over the IMPLEMENTATION queue or the TRACE queue.
name_match - This object, if provided, is used to recognize the proper scan depth as the iterator scans the objects in the specified collection. Whenever it gets a new object, it uses svt_data :: get_class_name to compare the basis for the two objects. If the compare succeeds, it goes no deeper with the scan and considers this the next iterator element. If the compare fails, then the scan moves into the corresponding collection on the object which it was unable to compare against. If this object is not provided the iterator assumes that it should do a one level scan.
scan_name_match_trace - If name_match is non-null and the name_match svt_transaction class has a trace queue then a setting of 1 will cause the iterator to traverse the trace array instead of the object itself. A setting of 0 will cause the iterator to just include the object in the iteration, not its trace. If name_match is null or it does not have a trace queue, then this field has no impact. TODO: This currently defaults to 1, but will likely change to a default of 0 soon.
start_ix - Optional index into the transaction implementation or trace array, used to limit where the iteration starts within the corresponding queue. The default value of -1 indicates that the iteration starts at the first element in the corresponding queue.
end_ix - Optional index into the transaction implementation or trace array, used to limit where the iteration ends within the corresponding queue. The default value of -1 indicates that the iteration ends at the last element in the corresponding queue.
log - An vmm_log object reference used to replace the default internal logger. |
|
||||
Move to the next element.
| ||||
|
|
||||
Move to the previous element.
| ||||
|
|
||||
Reset the iterator.
| ||||
|
|
|
Index that the iteration ends at. -1 indicates iteration ends on last queue element.
|
|
|
Indicates which collection should be iterated over.
|
|
|
The base transaction the iterator is going to be scanning.
|
|
|
When doing a multi-level traversal, this will be a handle to the iterator which iterates across the objects at the lower levels.
|
|
|
Used to do a name match (using svt_data :: get_class_name) of the scanned objects in order to recognize the object the client is actually interested in.
|
|
|
Used to control whether the scan ends at the name_match (0) or if it includes the 'trace' of the name_match object.
|
|
|
Index that the iteration starts at. -1 indicates iteration starts on first queue element.
|
|
|
Index at the current level, based on single level traversal.
|
|