blob: 128cbb71e95b9ea1965d5dcdb2ebf131cac08af8 [file] [log] [blame]
<html><head><title>ovm_callbacks #(T,CB)</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script></head><body class="FramedContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
<!-- Generated by Natural Docs, version Development Release 01-12-2008 (1.35 base) -->
<!-- http://www.naturaldocs.org -->
<!-- saved from url=(0026)http://www.naturaldocs.org -->
<!--TOP - START OF CONTENT-->
<div id=Content>
<!--CONTENT index=0 -->
<div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ovm_callbacks#(T,CB)" href="../../../../src/base/ovm_callback.svh">ovm_callbacks #(T,CB)</a></h1><div class=CBody><p>The <i>ovm_callbacks</i> class provides a base class for implementing callbacks, which are typically used to modify or augment component behavior without changing the component class.&nbsp; To work effectively, the developer of the component class defines a set of &ldquo;hook&rdquo; methods that enable users to customize certain behaviors of the component in a manner that is controlled by the component developer.&nbsp; The integrity of the component&rsquo;s overall behavior is intact, while still allowing certain customizable actions by the user.</p><p>To enable compile-time type-safety, the class is parameterized on both the user-defined callback interface implementation as well as the object type associated with the callback.</p><p>To provide the most flexibility for end-user customization and reuse, it is recommended that the component developer also define a corresponding set of virtual method hooks in the component itself.&nbsp; This affords users the ability to customize via inheritance/factory overrides as well as callback object registration.&nbsp; The implementation of each virtual method would provide the default traversal algorithm for the particular callback being called.&nbsp; Being virtual, users can define subtypes that override the default algorithm, perform tasks before and/or after calling super.&lt;method&gt; to execute any registered callbacks, or to not call the base implementation, effectively disabling that particalar hook.&nbsp; A demonstration of this methodology is provided in an example included in the kit.</p>
<!--START_ND_SUMMARY index=0-->
<div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=0 -->
<tr class="SClass"><td colspan=2 class=SEntry><a href="#ovm_callbacks#(T,CB)" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">ovm_callbacks #(T,CB)</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>The <i>ovm_callbacks</i> class provides a base class for implementing callbacks, which are typically used to modify or augment component behavior without changing the component class. </td></tr>
<tr class="SHierarchy SIndent1 "><td colspan=2 class="SEntry SIndent1">Class Hierarchy</td><tr><tr class="SPrototype SIndent1"><td colspan=2 class=SDescription><div class=ClassHierarchy>
<table border=0 cellspacing=0 cellpadding=0>
<tr><td><div class=CHParent><div class=CHEntry>ovm_pool#(T,ovm_queue#(CB))</div></div></td></tr>
<tr><td><div class=CHCurrent><div class=CHEntry>ovm_callbacks#(T,CB)</div></div></td></tr></table>
</div></td></tr>
<tr class="SPrototype SIndent1">
<td colspan=2 class="SEntry SIndent1">Class Declaration</td><tr><tr class="SPrototype SIndent1"><td colspan=2 class=SDescription><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters colspan=5>class ovm_callbacks #(</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>type&nbsp;</td><td class=PParameter nowrap>T</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int,</td></tr><tr><td>&nbsp;&nbsp;&nbsp;</td><td class=PType nowrap>&nbsp;</td><td class=PParameter nowrap>CB</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int</td></tr><tr><td class=PAfterParameters colspan=5>) extends ovm_pool #(T,ovm_queue #(CB))</td></tr></table></td></tr></table></blockquote></td></tr>
<!-- index=1 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#ovm_callbacks#(T,CB).Parameters" >Parameters</a></td><td class=SDescription></td></tr>
<!-- index=2 -->
<tr class="SParameter SIndent2"><td class=SEntry><a href="#ovm_callbacks#(T,CB).T" >T</a></td><td class=SDescription>This type parameter specifies the base object type with which the <a href="#ovm_callbacks#(T,CB).CB" class=LParameter id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">CB</a> callback objects will be registered.</td></tr>
<!-- index=3 -->
<tr class="SParameter SIndent2 SMarked"><td class=SEntry><a href="#ovm_callbacks#(T,CB).CB" >CB</a></td><td class=SDescription>This type parameter specifies the base callback type that will be managed by this callback class. </td></tr>
<!-- index=4 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#ovm_callbacks#(T,CB).Methods" >Methods</a></td><td class=SDescription></td></tr>
<!-- index=5 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#ovm_callbacks#(T,CB).new" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">new</a></td><td class=SDescription>Creates a new ovm_callbacks object, giving it an optional <i>name</i>.</td></tr>
<!-- index=6 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#ovm_callbacks#(T,CB).get_global_cbs" >get_global_cbs</a></td><td class=SDescription>Returns the global callback pool for this type.</td></tr>
<!-- index=7 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#ovm_callbacks#(T,CB).add_cb" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">add_cb</a></td><td class=SDescription>Registers the given callback object, <i>cb</i>, with the given <i>obj</i> handle. </td></tr>
<!-- index=8 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#ovm_callbacks#(T,CB).delete_cb" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">delete_cb</a></td><td class=SDescription>Removes a previously registered callback, <i>cb</i>, for the given object, <i>obj</i>.</td></tr>
<!-- index=9 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#ovm_callbacks#(T,CB).trace_mode" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">trace_mode</a></td><td class=SDescription>This function takes a single argument to turn on (1) or off (0) tracing. </td></tr>
<!-- index=10 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#ovm_callbacks#(T,CB).display_cbs" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">display_cbs</a></td><td class=SDescription>Displays information about all registered callbacks for the given <i>obj</i> handle. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<!--CONTENT index=1 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).Parameters" href="../../../../src/base/ovm_callback.svh">Parameters</a></h3></div></div>
<!--CONTENT index=2 -->
<div class="CParameter"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).T" href="../../../../src/base/ovm_callback.svh">T</a></h3><div class=CBody><p>This type parameter specifies the base object type with which the <a href="#ovm_callbacks#(T,CB).CB" class=LParameter id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">CB</a> callback objects will be registered.</p></div></div></div>
<!--CONTENT index=3 -->
<div class="CParameter"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).CB" href="../../../../src/base/ovm_callback.svh">CB</a></h3><div class=CBody><p>This type parameter specifies the base callback type that will be managed by this callback class.&nbsp; The callback type is typically a interface class, which defines one or more virtual method prototypes that users can override in subtypes.</p></div></div></div>
<!--CONTENT index=4 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).Methods" href="../../../../src/base/ovm_callback.svh">Methods</a></h3></div></div>
<!--CONTENT index=5 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).new" href="../../../../src/base/ovm_callback.svh">new</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function new(</td><td class=PType nowrap>string&nbsp;</td><td class=PParameter nowrap>name</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;ovm_callback&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Creates a new ovm_callbacks object, giving it an optional <i>name</i>.</p></div></div></div>
<!--CONTENT index=6 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).get_global_cbs" href="../../../../src/base/ovm_callback.svh">get_global_cbs</a></h3><div class=CBody><p>Returns the global callback pool for this type.</p><p>This allows items to be shared amongst components throughout the verification environment.</p></div></div></div>
<!--CONTENT index=7 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).add_cb" href="../../../../src/base/ovm_callback.svh">add_cb</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>virtual function void add_cb(</td><td class=PType nowrap>T&nbsp;</td><td class=PParameter nowrap>obj,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PType nowrap>CB&nbsp;</td><td class=PParameter nowrap>cb,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PType nowrap>bit&nbsp;</td><td class=PParameter nowrap>append</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>1</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Registers the given callback object, <i>cb</i>, with the given <i>obj</i> handle.&nbsp; The <i>obj</i> handle can be null, which allows registration of callbacks without an object context.&nbsp; If <i>append</i> is 1 (default), the callback will be executed after previously added callbacks, else the callback will be executed ahead of previously added callbacks.</p></div></div></div>
<!--CONTENT index=8 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).delete_cb" href="../../../../src/base/ovm_callback.svh">delete_cb</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>virtual function void delete_cb(</td><td class=PType nowrap>T&nbsp;</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PType nowrap>CB&nbsp;</td><td class=PParameter nowrap>cb</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Removes a previously registered callback, <i>cb</i>, for the given object, <i>obj</i>.</p></div></div></div>
<!--CONTENT index=9 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).trace_mode" href="../../../../src/base/ovm_callback.svh">trace_mode</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function void trace_mode(</td><td class=PType nowrap>bit&nbsp;</td><td class=PParameter nowrap>mode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>This function takes a single argument to turn on (1) or off (0) tracing.&nbsp; The default is to turn tracing on.</p></div></div></div>
<!--CONTENT index=10 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callbacks#(T,CB).display_cbs" href="../../../../src/base/ovm_callback.svh">display_cbs</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function void display_cbs(</td><td class=PType nowrap>T&nbsp;</td><td class=PParameter nowrap>obj</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Displays information about all registered callbacks for the given <i>obj</i> handle.&nbsp; If <i>obj</i> is not provided or is null, then information about all callbacks for all objects is displayed.</p></div></div></div>
<!--CONTENT index=11 -->
<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="ovm_callback" href="../../../../src/base/ovm_callback.svh">ovm_callback</a></h2><div class=CBody><p>The <i>ovm_callback</i> class is the base class for user-defined callback classes.&nbsp; Typically, the component developer defines an application-specific callback class that extends from this class.&nbsp; In it, he defines one or more virtual methods, called a <i>callback interface</i>, that represent the hooks available for user override.</p><p>Methods intended for optional override should not be declared <i>pure.</i>&nbsp; Usually, all the callback methods are defined with empty implementations so users have the option of overriding any or all of them.</p><p>The prototypes for each hook method are completely application specific with no restrictions.</p>
<!--START_ND_SUMMARY index=11-->
<div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable>
<!-- index=11 -->
<tr class="SClass"><td colspan=2 class=SEntry><a href="#ovm_callback" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">ovm_callback</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>The <i>ovm_callback</i> class is the base class for user-defined callback classes. </td></tr>
<tr class="SHierarchy SIndent1 "><td colspan=2 class="SEntry SIndent1">Class Hierarchy</td><tr><tr class="SPrototype SIndent1"><td colspan=2 class=SDescription><div class=ClassHierarchy>
<table border=0 cellspacing=0 cellpadding=0>
<tr><td><div class=CHParent><div class=CHEntry><a href="ovm_object-svh.html#ovm_object" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">ovm_object</a></div></div></td></tr>
<tr><td><div class=CHCurrent><div class=CHEntry>ovm_callback</div></div></td></tr></table>
</div></td></tr>
<tr class="SPrototype SIndent1">
<td colspan=2 class="SEntry SIndent1">Class Declaration</td><tr><tr class="SPrototype SIndent1"><td colspan=2 class=SDescription><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class ovm_callback extends ovm_object</td></tr></table></blockquote></td></tr>
<!-- index=12 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#ovm_callback.Methods" >Methods</a></td><td class=SDescription></td></tr>
<!-- index=13 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#ovm_callback.new" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">new</a></td><td class=SDescription>Creates a new ovm_callback object, giving it an optional <i>name</i>.</td></tr>
<!-- index=14 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#ovm_callback.callback_mode" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">callback_mode</a></td><td class=SDescription>Enable/disable callbacks (modeled like rand_mode and constraint_mode).</td></tr>
<!-- index=15 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#ovm_callback.is_enabled" id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">is_enabled</a></td><td class=SDescription>Returns 1 if the callback is enabled, 0 otherwise.</td></tr>
<!-- index=16 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#ovm_callback.get_type_name" id=link14 onMouseOver="ShowTip(event, 'tt13', 'link14')" onMouseOut="HideTip('tt13')">get_type_name</a></td><td class=SDescription>Returns the type name of this callback object.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
<!--CONTENT index=12 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="ovm_callback.Methods" href="../../../../src/base/ovm_callback.svh">Methods</a></h3></div></div>
<!--CONTENT index=13 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callback.new" href="../../../../src/base/ovm_callback.svh">new</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function new(</td><td class=PType nowrap>string&nbsp;</td><td class=PParameter nowrap>name</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;ovm_callback&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Creates a new ovm_callback object, giving it an optional <i>name</i>.</p></div></div></div>
<!--CONTENT index=14 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callback.callback_mode" href="../../../../src/base/ovm_callback.svh">callback_mode</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function void callback_mode(</td><td class=PType nowrap>bit&nbsp;</td><td class=PParameter nowrap>on</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Enable/disable callbacks (modeled like rand_mode and constraint_mode).</p></div></div></div>
<!--CONTENT index=15 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callback.is_enabled" href="../../../../src/base/ovm_callback.svh">is_enabled</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function bit is_enabled()</td></tr></table></blockquote><div class=CBody><p>Returns 1 if the callback is enabled, 0 otherwise.</p></div></div></div>
<!--CONTENT index=16 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="ovm_callback.get_type_name" href="../../../../src/base/ovm_callback.svh">get_type_name</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_type_name()</td></tr></table></blockquote><div class=CBody><p>Returns the type name of this callback object.</p></div></div></div>
</div><!--Content-->
<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CClass><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>class ovm_callbacks #(</td><td class=PType nowrap>type&nbsp;</td><td class=PParameter nowrap>T</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int,</td></tr><tr><td></td><td class=PType nowrap>&nbsp;</td><td class=PParameter nowrap>CB</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int</td><td class=PAfterParameters nowrap>) extends ovm_pool #(T,ovm_queue #(CB))</td></tr></table></td></tr></table></blockquote>The <i>ovm_callbacks</i> class provides a base class for implementing callbacks, which are typically used to modify or augment component behavior without changing the component class. </div></div><div class=CToolTip id="tt2"><div class=CParameter>This type parameter specifies the base callback type that will be managed by this callback class. </div></div><div class=CToolTip id="tt3"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function new(</td><td class=PType nowrap>string&nbsp;</td><td class=PParameter nowrap>name</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;ovm_callback&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new ovm_callbacks object, giving it an optional <i>name</i>.</div></div><div class=CToolTip id="tt4"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>virtual function void add_cb(</td><td class=PType nowrap>T&nbsp;</td><td class=PParameter nowrap>obj,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PType nowrap>CB&nbsp;</td><td class=PParameter nowrap>cb,</td><td class=PDefaultValuePrefix>&nbsp;&nbsp;</td><td class=PDefaultValue width=100%></td></tr><tr><td></td><td class=PType nowrap>bit&nbsp;</td><td class=PParameter nowrap>append</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>1</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Registers the given callback object, <i>cb</i>, with the given <i>obj</i> handle. </div></div><div class=CToolTip id="tt5"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>virtual function void delete_cb(</td><td class=PType nowrap>T&nbsp;</td><td class=PParameter nowrap>obj,</td></tr><tr><td></td><td class=PType nowrap>CB&nbsp;</td><td class=PParameter nowrap>cb</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Removes a previously registered callback, <i>cb</i>, for the given object, <i>obj</i>.</div></div><div class=CToolTip id="tt6"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function void trace_mode(</td><td class=PType nowrap>bit&nbsp;</td><td class=PParameter nowrap>mode</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This function takes a single argument to turn on (1) or off (0) tracing. </div></div><div class=CToolTip id="tt7"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function void display_cbs(</td><td class=PType nowrap>T&nbsp;</td><td class=PParameter nowrap>obj</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>null</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Displays information about all registered callbacks for the given <i>obj</i> handle. </div></div><div class=CToolTip id="tt8"><div class=CClass><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual class ovm_object extends ovm_void</td></tr></table></blockquote>The ovm_object class is the base class for all OVM data and hierarchical classes. </div></div><div class=CToolTip id="tt9"><div class=CClass><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>class ovm_callback extends ovm_object</td></tr></table></blockquote>The <i>ovm_callback</i> class is the base class for user-defined callback classes. </div></div><div class=CToolTip id="tt10"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function new(</td><td class=PType nowrap>string&nbsp;</td><td class=PParameter nowrap>name</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>&quot;ovm_callback&quot;</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new ovm_callback object, giving it an optional <i>name</i>.</div></div><div class=CToolTip id="tt11"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>function void callback_mode(</td><td class=PType nowrap>bit&nbsp;</td><td class=PParameter nowrap>on</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Enable/disable callbacks (modeled like rand_mode and constraint_mode).</div></div><div class=CToolTip id="tt12"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>function bit is_enabled()</td></tr></table></blockquote>Returns 1 if the callback is enabled, 0 otherwise.</div></div><div class=CToolTip id="tt13"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function string get_type_name()</td></tr></table></blockquote>Returns the type name of this callback object.</div></div><!--END_ND_TOOLTIPS-->
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>