SyoSil ApS UVM Scoreboard  1.0.3.0
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH > Class Template Reference

Queue iterator class defining the iterator API used for iterating hash queues. More...

+ Inheritance diagram for cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >:
+ Collaboration diagram for cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >:

Public Member Functions

virtual cl_syoscb_proxy_item_base next ()
 Iterator API: See cl_syoscb_queue_iterator_base::next for details
 
virtual bit has_next ()
 Iterator API: See cl_syoscb_queue_iterator_base::has_next for details
 
virtual cl_syoscb_proxy_item_base previous ()
 Iterator API: See cl_syoscb_queue_iterator_base::previous for details
 
virtual bit has_previous ()
 Iterator API: See cl_syoscb_queue_iterator_base::has_previous for details
 
virtual bit first ()
 Iterator API: See cl_syoscb_queue_iterator_base::first for details
 
virtual bit last ()
 Iterator API: See cl_syoscb_queue_iterator_base::last for details
 
virtual bit set_queue (cl_syoscb_queue_base owner)
 Iterator API: See cl_syoscb_queue_iterator_base::set_queue for details
 
virtual cl_syoscb_proxy_item_base next ()
 Iterator API: Moves the iterator one step forward, returning the next item in the queue. More...
 
virtual bit has_next ()
 Iterator API: Checks if there are more items in the queue in the forward direction More...
 
virtual cl_syoscb_proxy_item_base previous ()
 Iterator API: Moves the iterator one step backward, returning the previous item in the queue. More...
 
virtual bit has_previous ()
 Iterator API: Checks if there are more items in the queue in the backward direction More...
 
virtual bit first ()
 Iterator API: Moves the iterator to the first item in the queue. More...
 
virtual bit last ()
 Iterator API: Moves the iterator to the last item in the queue. More...
 
virtual bit set_queue (cl_syoscb_queue_base owner)
 Iterator API: Sets the queue over which this iterator is iterating. More...
 
- Public Member Functions inherited from cl_syoscb_queue_iterator_base
virtual int next_index ()
 Iterator API: Returns the index of the item which would be returned if next() was called More...
 
virtual int previous_index ()
 Iterator API: Returns the index of the item which would be returned if previous() was called More...
 

Protected Member Functions

virtual cl_syoscb_proxy_item_base get_item_proxy ()
 Iterator API: See cl_syoscb_queue_iterator_base::get_item_proxy for details
 
virtual cl_syoscb_proxy_item_base get_item_proxy ()
 Iterator API: Internal API: Returns a proxy item that can be used to access the element that was just moved past by calling next or previous. More...
 
- Protected Member Functions inherited from cl_syoscb_queue_iterator_base
virtual cl_syoscb_queue_base get_queue ()
 Iterator API: Internal API: Returns the queue over which this iterator is iterating. More...
 

Protected Attributes

int unsigned hash_index = 0
 Field indicating which cl_syoscb_hash_item index we're currently looking at.
 
- Protected Attributes inherited from cl_syoscb_queue_iterator_base
cl_syoscb_queue_base owner
 The owner of this iterator.
 
int unsigned position = 0
 Current position in the queue.
 
cl_syoscb_cfg cfg
 Local handle to the SCB cfg.
 

Private Attributes

cl_syoscb_hash_base< HASH_DIGEST_WIDTH >::tp_hash_digest digest
 Holds the value of the most recently accessed hash digest.
 

Detailed Description

template<int unsigned HASH_DIGEST_WIDTH = 1>
class cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >

Queue iterator class defining the iterator API used for iterating hash queues.

Parameters
HASH_DIGEST_WIDTHNumber of bits used in the hash digest for the chosen hash algorithm

Definition at line 3 of file cl_syoscb_queue_iterator_hash.svh.

Member Function Documentation

◆ first()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual bit cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::first ( )
virtual

Iterator API: Moves the iterator to the first item in the queue.

Calling has_previous at this point will always return 1'b0

Returns
1 if successful, 0 if the queue is empty

Reimplemented from cl_syoscb_queue_iterator_base.

◆ get_item_proxy()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual cl_syoscb_proxy_item_base cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::get_item_proxy ( )
protectedvirtual

Iterator API: Internal API: Returns a proxy item that can be used to access the element that was just moved past by calling next or previous.

Returns
A proxy item for the element that was moved past.

Reimplemented from cl_syoscb_queue_iterator_base.

◆ has_next()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual bit cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::has_next ( )
virtual

Iterator API: Checks if there are more items in the queue in the forward direction

Returns
1 if there are more items in the forward direction, 0 otherwise (either empty queue or past last item)

Reimplemented from cl_syoscb_queue_iterator_base.

◆ has_previous()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual bit cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::has_previous ( )
virtual

Iterator API: Checks if there are more items in the queue in the backward direction

Returns
1 if there are more items in the backward direction, 0 otherwise (either empty queue or at first item)

Reimplemented from cl_syoscb_queue_iterator_base.

◆ last()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual bit cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::last ( )
virtual

Iterator API: Moves the iterator to the last item in the queue.

Calling has_next at this point will always return 1'b0.

Returns
1 if succesful, 0 if there is no first item (queue is empty)

Reimplemented from cl_syoscb_queue_iterator_base.

◆ next()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual cl_syoscb_proxy_item_base cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::next ( )
virtual

Iterator API: Moves the iterator one step forward, returning the next item in the queue.

Returns
The next item if successful, raises a uvm_error if there is no next item

Reimplemented from cl_syoscb_queue_iterator_base.

◆ previous()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual cl_syoscb_proxy_item_base cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::previous ( )
virtual

Iterator API: Moves the iterator one step backward, returning the previous item in the queue.

Returns
The previous item if successful, raises a uvm_error if there is no previous item

Reimplemented from cl_syoscb_queue_iterator_base.

◆ set_queue()

template<int unsigned HASH_DIGEST_WIDTH = 1>
virtual bit cl_syoscb_queue_iterator_hash< HASH_DIGEST_WIDTH >::set_queue ( cl_syoscb_queue_base  owner)
virtual

Iterator API: Sets the queue over which this iterator is iterating.

If a queue has already been associated with this iterator, or the queue type does not match the iterator type, generates a UVM_ERROR message with id ITER_ERROR.

Returns
1 if successful, raises a UVM_ERROR otherwise (a queue is already associated with this iterator, or wrong queue type)

Reimplemented from cl_syoscb_queue_iterator_base.


The documentation for this class was generated from the following files:

Project: SyoSil ApS UVM Scoreboard, Revision: 1.0.3.0

Copyright 2014-2022 SyoSil ApS
All Rights Reserved Worldwide

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
doxygen
Doxygen Version: 1.8.14
Generated with IDV SV Filter Version: 2.6.3
Fri Sep 2 2022 14:41:12
Find a documentation bug? Report bugs to: scoreboard@syosil.com