blob: d836b03b17b7a21ab91c649b00dde47987d4a4f7 [file]
<html><head><title>tlm_if_base #(T1,T2)</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="tlm_if_base#(T1,T2)" href="../../../../src/tlm/tlm_ifs.svh">tlm_if_base #(T1,T2)</a></h1><div class=CBody><p>This class declares all of the methods of the TLM API.</p><p>Various subsets of these methods are combined to form primitive TLM interfaces, which are then paired in various ways to form more abstract &ldquo;combination&rdquo; TLM interfaces.&nbsp; Components that require a particular interface use ports to convey that requirement.&nbsp; Components that provide a particular interface use exports to convey its availability.</p><p>Communication between components is established by connecting ports to compatible exports, much like connecting module signal-level output ports to compatible input ports.&nbsp; The difference is that OVM ports and exports bind interfaces (groups of methods), not signals and wires.&nbsp; The methods of the interfaces so bound pass data as whole transactions (e.g. objects).&nbsp; The set of primitve and combination TLM interfaces afford many choices for designing components that communicate at the transaction level.</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="#tlm_if_base#(T1,T2)" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">tlm_if_base #(T1,T2)</a></td></tr>
<tr class=SMain><td colspan=2 class=SWideDescription>This class declares all of the methods of the TLM API.</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 nowrap>virtual class tlm_if_base #(</td><td class=PType nowrap>type&nbsp;</td><td class=PParameter nowrap>T1</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int,</td></tr><tr><td></td><td class=PType nowrap>type&nbsp;</td><td class=PParameter nowrap>T2</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote></td></tr>
<!-- index=1 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Blocking_put" >Blocking put</a></td><td class=SDescription></td></tr>
<!-- index=2 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).put" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">put</a></td><td class=SDescription>Sends a user-defined transaction of type T.</td></tr>
<!-- index=3 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Blocking_get" >Blocking get</a></td><td class=SDescription></td></tr>
<!-- index=4 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).get" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">get</a></td><td class=SDescription>Provides a new transaction of type T.</td></tr>
<!-- index=5 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Blocking_peek" >Blocking peek</a></td><td class=SDescription></td></tr>
<!-- index=6 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).peek" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">peek</a></td><td class=SDescription>Obtain a new transaction without consuming it.</td></tr>
<!-- index=7 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Non-blocking_put" >Non-blocking put</a></td><td class=SDescription></td></tr>
<!-- index=8 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).try_put" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">try_put</a></td><td class=SDescription>Sends a transaction of type T, if possible.</td></tr>
<!-- index=9 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#tlm_if_base#(T1,T2).can_put" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">can_put</a></td><td class=SDescription>Returns 1 if the component is ready to accept the transaction; 0 otherwise.</td></tr>
<!-- index=10 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Non-blocking_get" >Non-blocking get</a></td><td class=SDescription></td></tr>
<!-- index=11 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).try_get" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">try_get</a></td><td class=SDescription>Provides a new transaction of type T.</td></tr>
<!-- index=12 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#tlm_if_base#(T1,T2).can_get" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">can_get</a></td><td class=SDescription>Returns 1 if a new transaction can be provided immediately upon request, 0 otherwise.</td></tr>
<!-- index=13 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Non-blocking_peek" >Non-blocking peek</a></td><td class=SDescription></td></tr>
<!-- index=14 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).try_peek" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">try_peek</a></td><td class=SDescription>Provides a new transaction without consuming it.</td></tr>
<!-- index=15 -->
<tr class="SMethod SIndent2 SMarked"><td class=SEntry><a href="#tlm_if_base#(T1,T2).can_peek" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">can_peek</a></td><td class=SDescription>Returns 1 if a new transaction is available; 0 otherwise.</td></tr>
<!-- index=16 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Blocking_transport" >Blocking transport</a></td><td class=SDescription></td></tr>
<!-- index=17 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).transport" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">transport</a></td><td class=SDescription>Executes the given request and returns the response in the given output argument. </td></tr>
<!-- index=18 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Non-blocking_transport" >Non-blocking transport</a></td><td class=SDescription></td></tr>
<!-- index=19 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).nb_transport" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">nb_transport</a></td><td class=SDescription>Executes the given request and returns the response in the given output argument. </td></tr>
<!-- index=20 -->
<tr class="SGroup SIndent1"><td class=SEntry><a href="#tlm_if_base#(T1,T2).Analysis" >Analysis</a></td><td class=SDescription></td></tr>
<!-- index=21 -->
<tr class="SMethod SIndent2"><td class=SEntry><a href="#tlm_if_base#(T1,T2).write" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">write</a></td><td class=SDescription>Broadcasts a user-defined transaction of type T to any number of listeners. </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="tlm_if_base#(T1,T2).Blocking_put" href="../../../../src/tlm/tlm_ifs.svh">Blocking put</a></h3></div></div>
<!--CONTENT index=2 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).put" href="../../../../src/tlm/tlm_ifs.svh">put</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 task put(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Sends a user-defined transaction of type T.</p><p>Components implementing the put method will block the calling thread if it cannot immediately accept delivery of the transaction.</p></div></div></div>
<!--CONTENT index=3 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Blocking_get" href="../../../../src/tlm/tlm_ifs.svh">Blocking get</a></h3></div></div>
<!--CONTENT index=4 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).get" href="../../../../src/tlm/tlm_ifs.svh">get</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 task get(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Provides a new transaction of type T.</p><p>The calling thread is blocked if the requested transaction cannot be provided immediately.&nbsp; The new transaction is returned in the provided output argument.</p><p>The implementation of get must regard the transaction as consumed.&nbsp; Subsequent calls to get must return a different transaction instance.</p></div></div></div>
<!--CONTENT index=5 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Blocking_peek" href="../../../../src/tlm/tlm_ifs.svh">Blocking peek</a></h3></div></div>
<!--CONTENT index=6 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).peek" href="../../../../src/tlm/tlm_ifs.svh">peek</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 task peek(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Obtain a new transaction without consuming it.</p><p>If a transaction is available, then it is written to the provided output argument.&nbsp; If a transaction is not available, then the calling thread is blocked until one is available.</p><p>The returned transaction is not consumed.&nbsp; A subsequent peek or get will return the same transaction.</p></div></div></div>
<!--CONTENT index=7 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Non-blocking_put" href="../../../../src/tlm/tlm_ifs.svh">Non-blocking put</a></h3></div></div>
<!--CONTENT index=8 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).try_put" href="../../../../src/tlm/tlm_ifs.svh">try_put</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 bit try_put(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Sends a transaction of type T, if possible.</p><p>If the component is ready to accept the transaction argument, then it does so and returns 1, otherwise it returns 0.</p></div></div></div>
<!--CONTENT index=9 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).can_put" href="../../../../src/tlm/tlm_ifs.svh">can_put</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit can_put()</td></tr></table></blockquote><div class=CBody><p>Returns 1 if the component is ready to accept the transaction; 0 otherwise.</p></div></div></div>
<!--CONTENT index=10 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Non-blocking_get" href="../../../../src/tlm/tlm_ifs.svh">Non-blocking get</a></h3></div></div>
<!--CONTENT index=11 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).try_get" href="../../../../src/tlm/tlm_ifs.svh">try_get</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 bit try_get(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Provides a new transaction of type T.</p><p>If a transaction is immediately available, then it is written to the output argument and 1 is returned.&nbsp; Otherwise, the output argument is not modified and 0 is returned.</p></div></div></div>
<!--CONTENT index=12 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).can_get" href="../../../../src/tlm/tlm_ifs.svh">can_get</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit can_get()</td></tr></table></blockquote><div class=CBody><p>Returns 1 if a new transaction can be provided immediately upon request, 0 otherwise.</p></div></div></div>
<!--CONTENT index=13 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Non-blocking_peek" href="../../../../src/tlm/tlm_ifs.svh">Non-blocking peek</a></h3></div></div>
<!--CONTENT index=14 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).try_peek" href="../../../../src/tlm/tlm_ifs.svh">try_peek</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 bit try_peek(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Provides a new transaction without consuming it.</p><p>If available, a transaction is written to the output argument and 1 is returned.&nbsp; A subsequent peek or get will return the same transaction.&nbsp; If a transaction is not available, then the argument is unmodified and 0 is returned.</p></div></div></div>
<!--CONTENT index=15 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).can_peek" href="../../../../src/tlm/tlm_ifs.svh">can_peek</a></h3><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit can_peek()</td></tr></table></blockquote><div class=CBody><p>Returns 1 if a new transaction is available; 0 otherwise.</p></div></div></div>
<!--CONTENT index=16 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Blocking_transport" href="../../../../src/tlm/tlm_ifs.svh">Blocking transport</a></h3></div></div>
<!--CONTENT index=17 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).transport" href="../../../../src/tlm/tlm_ifs.svh">transport</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 task transport(</td><td class=PTypePrefix nowrap>input T1&nbsp;</td><td class=PType nowrap>req&nbsp;</td><td class=PParameter nowrap>,</td></tr><tr><td></td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>rsp</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Executes the given request and returns the response in the given output argument.&nbsp; The calling thread may block until the operation is complete.</p></div></div></div>
<!--CONTENT index=18 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Non-blocking_transport" href="../../../../src/tlm/tlm_ifs.svh">Non-blocking transport</a></h3></div></div>
<!--CONTENT index=19 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).nb_transport" href="../../../../src/tlm/tlm_ifs.svh">nb_transport</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 bit nb_transport(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>req,</td></tr><tr><td></td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>rsp</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Executes the given request and returns the response in the given output argument.&nbsp; Completion of this operation must occur without blocking.</p><p>If for any reason the operation could not be executed immediately, then a 0 must be returned; otherwise 1.</p></div></div></div>
<!--CONTENT index=20 -->
<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).Analysis" href="../../../../src/tlm/tlm_ifs.svh">Analysis</a></h3></div></div>
<!--CONTENT index=21 -->
<div class="CMethod"><div class=CTopic><h3 class=CTitle><a name="tlm_if_base#(T1,T2).write" href="../../../../src/tlm/tlm_ifs.svh">write</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 write(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><div class=CBody><p>Broadcasts a user-defined transaction of type T to any number of listeners.&nbsp; The operation must complete without blocking.</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>virtual class tlm_if_base #(</td><td class=PType nowrap>type&nbsp;</td><td class=PParameter nowrap>T1</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int,</td></tr><tr><td></td><td class=PType nowrap>type&nbsp;</td><td class=PParameter nowrap>T2</td><td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td><td class=PDefaultValue width=100%>int</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>This class declares all of the methods of the TLM API.</div></div><div class=CToolTip id="tt2"><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 task put(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sends a user-defined transaction of type T.</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>virtual task get(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Provides a new transaction of type T.</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 task peek(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Obtain a new transaction without consuming it.</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 bit try_put(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sends a transaction of type T, if possible.</div></div><div class=CToolTip id="tt6"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit can_put()</td></tr></table></blockquote>Returns 1 if the component is ready to accept the transaction; 0 otherwise.</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>virtual function bit try_get(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Provides a new transaction of type T.</div></div><div class=CToolTip id="tt8"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit can_get()</td></tr></table></blockquote>Returns 1 if a new transaction can be provided immediately upon request, 0 otherwise.</div></div><div class=CToolTip id="tt9"><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 bit try_peek(</td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Provides a new transaction without consuming it.</div></div><div class=CToolTip id="tt10"><div class=CMethod><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>virtual function bit can_peek()</td></tr></table></blockquote>Returns 1 if a new transaction is available; 0 otherwise.</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>virtual task transport(</td><td class=PTypePrefix nowrap>input T1&nbsp;</td><td class=PType nowrap>req&nbsp;</td><td class=PParameter nowrap>,</td></tr><tr><td></td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>rsp</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Executes the given request and returns the response in the given output argument. </div></div><div class=CToolTip id="tt12"><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 bit nb_transport(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>req,</td></tr><tr><td></td><td class=PTypePrefix nowrap>output&nbsp;</td><td class=PType nowrap>T2&nbsp;</td><td class=PParameter nowrap>rsp</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Executes the given request and returns the response in the given output argument. </div></div><div class=CToolTip id="tt13"><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 write(</td><td class=PTypePrefix nowrap>input&nbsp;</td><td class=PType nowrap>T1&nbsp;</td><td class=PParameter nowrap>t</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Broadcasts a user-defined transaction of type T to any number of listeners. </div></div><!--END_ND_TOOLTIPS-->
<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>