svt_sequence_item_iter Class Reference

Inheritance diagram for class svt_sequence_item_iter:

List of all members.


Detailed Description

Iterators that can be used to iterate over the implementation and trace collections stored with a transaction.



Public Member Functions

function svt_sequence_item_base_iter  allocate ( )
function bit  check_iter_level ( )
function svt_sequence_item_base_iter  copy ( )
function bit  first ( )
function svt_sequence_item_base  get_data ( )
function void  initialize ( svt_sequence_item iter_xact, svt_sequence_item_iter :: iter_type_enum iter_type = TRACE, svt_sequence_item_base name_match = null, bit scan_name_match_trace = 0, int start_ix = -1, int end_ix = -1, int top_level_ix = -1, svt_sequence_item_iter level_n_iter = null )
function bit  is_ok ( )
function bit  last ( )
function void  new ( svt_sequence_item iter_xact, svt_sequence_item_iter :: iter_type_enum iter_type = TRACE, svt_sequence_item_base name_match = null, bit scan_name_match_trace = 1, int start_ix = -1, int end_ix = -1, uvm_report_object reporter = 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_sequence_item_iter :: iter_type_enum  iter_type 
protected svt_sequence_item  iter_xact 
protected svt_sequence_item_iter  level_n_iter = null; 
protected svt_sequence_item_base  name_match = null; 
protected int  start_ix = -1; 
protected int  top_level_ix = -1; 

Member Typedefs

 typedef enum  iter_type_enum 


Member Function Documentation

  function svt_sequence_item_base_iter
 svt_sequence_item_iter::allocate

 (   ) 


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.

 Superseded functions 
 svt_sequence_item_base_iter :: allocate 

  function bit
 svt_sequence_item_iter::check_iter_level

 (   ) 


Checks to see if the iterator is properly positioned on a data object.

  function svt_sequence_item_base_iter
 svt_sequence_item_iter::copy

 (   ) 


Copy the iterator, putting the new iterator at the same position.

 Superseded functions 
 svt_sequence_item_base_iter :: copy 

  function bit
 svt_sequence_item_iter::first

 (   ) 


Move to the first element in the collection.

 Superseded functions 
 svt_sequence_item_base_iter :: first 

  function svt_sequence_item_base
 svt_sequence_item_iter::get_data

 (   ) 


Access the svt_data object at the current position.

 Superseded functions 
 svt_sequence_item_base_iter :: get_data 

  function void
 svt_sequence_item_iter::initialize

 (  svt_sequence_item iter_xact , svt_sequence_item_iter :: iter_type_enum iter_type = TRACE, svt_sequence_item_base name_match = null, bit scan_name_match_trace = 0, int start_ix = -1, int end_ix = -1, int top_level_ix = -1, svt_sequence_item_iter level_n_iter = null  ) 


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_sequence_item_base :: 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.

  function bit
 svt_sequence_item_iter::is_ok

 (   ) 


Evaluate whether the iterator is positioned on an element.

 Superseded functions 
 svt_sequence_item_base_iter :: is_ok 

  function bit
 svt_sequence_item_iter::last

 (   ) 


Move to the last element.

 Superseded functions 
 svt_sequence_item_base_iter :: last 

  function void
 svt_sequence_item_iter::new

 (  svt_sequence_item iter_xact , svt_sequence_item_iter :: iter_type_enum iter_type = TRACE, svt_sequence_item_base name_match = null, bit scan_name_match_trace = 1, int start_ix = -1, int end_ix = -1, uvm_report_object reporter = null  ) 


CONSTRUCTOR: Creates a new instance of the svt_sequence_item_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_sequence_item_base :: 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.

reporter - A report object object reference used to replace the default internal reporter.

  function bit
 svt_sequence_item_iter::next

 (   ) 


Move to the next element.

 Superseded functions 
 svt_sequence_item_base_iter :: next 

  function bit
 svt_sequence_item_iter::prev

 (   ) 


Move to the previous element.

 Superseded functions 
 svt_sequence_item_base_iter :: prev 

  function void
 svt_sequence_item_iter::reset

 (   ) 


Reset the iterator.

 Superseded functions 
 svt_sequence_item_base_iter :: reset 


Member Attribute Documentation

 protected int  attribute
 svt_sequence_item_iter::end_ix = -1


Index that the iteration ends at. -1 indicates iteration ends on last queue element.

 protected svt_sequence_item_iter :: iter_type_enum  attribute
 svt_sequence_item_iter::iter_type = TRACE


Indicates which collection should be iterated over.

 protected svt_sequence_item  attribute
 svt_sequence_item_iter::iter_xact


The base transaction the iterator is going to be scanning.

 protected svt_sequence_item_iter  attribute
 svt_sequence_item_iter::level_n_iter = null


When doing a multi-level traversal, this will be a handle to the iterator which iterates across the objects at the lower levels.

 protected svt_sequence_item_base  attribute
 svt_sequence_item_iter::name_match = null


Used to do a name match (using svt_sequence_item_base :: get_class_name) of the scanned objects in order to recognize the object the client is actually interested in.

 bit  attribute
 svt_sequence_item_iter::scan_name_match_trace = 0


Used to control whether the scan ends at the name_match (0) or if it includes the 'trace' of the name_match object.

 protected int  attribute
 svt_sequence_item_iter::start_ix = -1


Index that the iteration starts at. -1 indicates iteration starts on first queue element.

 protected int  attribute
 svt_sequence_item_iter::top_level_ix = -1


Index at the current level, based on single level traversal.

Member Typedef Documentation

 typedef enum  svt_sequence_item_iter::iter_type_enum

This enumeration is used to signify which data collection the client wishes to iterate on. The supported choices correspond to the collections supported by this class.

IMPLEMENTATION
Indicates iteration should be over the implementation data
TRACE
Indicates iteration should be over the trace data