svt_transaction_iter Class Reference

Inheritance diagram for class svt_transaction_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_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 


Member Function Documentation

  function svt_data_iter
 svt_transaction_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_data_iter :: allocate 

  function bit
 svt_transaction_iter::check_iter_level

 (   ) 


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

  function svt_data_iter
 svt_transaction_iter::copy

 (   ) 


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

 Superseded functions 
 svt_data_iter :: copy 

  function bit
 svt_transaction_iter::first

 (   ) 


Move to the first element in the collection.

 Superseded functions 
 svt_data_iter :: first 

  function svt_data
 svt_transaction_iter::get_data

 (   ) 


Access the svt_data object at the current position.

 Superseded functions 
 svt_data_iter :: get_data 

  function void
 svt_transaction_iter::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  ) 


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.

  function bit
 svt_transaction_iter::is_ok

 (   ) 


Evaluate whether the iterator is positioned on an element.

 Superseded functions 
 svt_data_iter :: is_ok 

  function bit
 svt_transaction_iter::last

 (   ) 


Move to the last element.

 Superseded functions 
 svt_data_iter :: last 

  function void
 svt_transaction_iter::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  ) 


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.

  function bit
 svt_transaction_iter::next

 (   ) 


Move to the next element.

 Superseded functions 
 svt_data_iter :: next 

  function bit
 svt_transaction_iter::prev

 (   ) 


Move to the previous element.

 Superseded functions 
 svt_data_iter :: prev 

  function void
 svt_transaction_iter::reset

 (   ) 


Reset the iterator.

 Superseded functions 
 svt_data_iter :: reset 


Member Attribute Documentation

 protected int  attribute
 svt_transaction_iter::end_ix = -1


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

 protected svt_transaction_iter :: iter_type_enum  attribute
 svt_transaction_iter::iter_type = TRACE


Indicates which collection should be iterated over.

 protected svt_transaction  attribute
 svt_transaction_iter::iter_xact


The base transaction the iterator is going to be scanning.

 protected svt_transaction_iter  attribute
 svt_transaction_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_data  attribute
 svt_transaction_iter::name_match = null


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.

 bit  attribute
 svt_transaction_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_transaction_iter::start_ix = -1


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

 protected int  attribute
 svt_transaction_iter::top_level_ix = -1


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

Member Typedef Documentation

 typedef enum  svt_transaction_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