<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<link rel="stylesheet" type="text/css" href="http://oldforge.etsi.org/mantis/css/default.css" />
	<script type="text/javascript"><!--
		if(document.layers) {document.write("<style>td{padding:0px;}<\/style>")}
	// --></script>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<meta http-equiv="Pragma-directive" content="no-cache" />
	<meta http-equiv="Cache-Directive" content="no-cache" />
	<meta http-equiv="Expires" content="Tue, 17 Dec 2024 09:20:35 GMT" />
	<link rel="shortcut icon" href="/mantis/images/favicon.ico" type="image/x-icon" />
	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Text Search" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=text" />	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Issue Id" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=id" />	<title>0002108: Example uses function in template with out parameter - ETSI's Bug Tracker</title>
<script type="text/javascript" src="/mantis/javascript/min/common.js"></script>
<script type="text/javascript">var loading_lang = "Loading...";</script><script type="text/javascript" src="/mantis/javascript/min/ajax.js"></script>
</head>
<body>
<br /><table class="width100" cellspacing="1"><tr><td class="form-title" colspan="6"><div class="center">ETSI's Bug Tracker - Part 01: TTCN-3 Core Language</div></td></tr><tr><td class="form-title" colspan="6">View Issue Details</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print-category"><td class="print" width="16%">ID</td><td class="print" width="16%">Project</td><td class="print" width="16%">Category</td><td class="print" width="16%">View Status</td><td class="print" width="16%">Date Submitted</td><td class="print" width="16%">Last Update</td></tr><tr class="print"><td class="print">0002108</td><td class="print">Part 01: TTCN-3 Core Language</td><td class="print">Editorial</td><td class="print">public</td><td class="print">05-10-2007 17:31</td><td class="print">12-03-2008 10:24</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Reporter</td><td class="print">Thomas DeiÃŸ</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Assigned To</td><td class="print">Ina Schieferdecker</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Priority</td><td class="print">normal</td><td class="print-category">Severity</td><td class="print">minor</td><td class="print-category">Reproducibility</td><td class="print">N/A</td></tr><tr class="print"><td class="print-category">Status</td><td class="print">closed</td><td class="print-category">Resolution</td><td class="print">fixed</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Platform</td><td class="print"></td><td class="print-category">OS</td><td class="print"></td><td class="print-category">OS Version</td><td class="print"></td></tr><tr class="print"><td class="print-category">Product Version</td><td class="print">v3.2.1 (published 2007-02)</td><td class="print" colspan="4">&#160;</td></tr><tr><td class="print-category">Target Version</td><td class="print">v3.3.2  (published 2008-04)</td><td class="print-category">Fixed in Version</td><td class="print">v3.3.2  (published 2008-04)</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Clause Reference(s)</td><td class="print" colspan="4">5.4.1.1, 16.1.4</td></tr><tr class="print"><td class="print-category">Source  (company  - Author)</td><td class="print" colspan="4">Thomas DeiÃŸ</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Summary</td><td class="print" colspan="5">0002108: Example uses function in template with out parameter</td></tr><tr class="print"><td class="print-category">Description</td><td class="print" colspan="5">Example 2 in clause 5.4.1.1 uses a function with an inout parameter inside a template definition. But this is not allowed according to clause 16.1.4. item j).<br />
<br />
Proposed resolution: change the template in the example to a function and adapt its usage (name changed from t_MyMessage to f_MyMessage)<br />
<br />
function f_MyMessage (integer p_int) return MyMessage {<br />
&#160;&#160;var integer f1,f2;<br />
&#160;&#160;f1 := f_mult2 (p_int),<br />
&#160;&#160;// parameter p_int is passed on; as the parameter of the called function f_mult2 is<br />
&#160;&#160;// defined as an inout parameter, it passes back the changed value for p_int, <br />
&#160;&#160;f2 := p_int;<br />
&#160;&#160;return {f1, f2};<br />
}<br />
<br />
...<br />
<br />
testcase tc_01 () runs on MTC_PT {<br />
&#160;&#160;&#160;&#160;...<br />
&#160;&#160;&#160;&#160;&#160;&#160;P1.send (f_MyMessage(5))<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// the value sent is { f1 := 9 , f2 := 10 }<br />
&#160;&#160;&#160;&#160;...<br />
&#160;&#160;&#160;&#160;}<br />
<br />
<br />
<br />
</td></tr><tr class="print"><td class="print-category">Steps To Reproduce</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Additional Information</td><td class="print" colspan="5">Note 1) The reason given that functions with inout parameters cannot be used do not apply in this case, for usage in boolean guards of alternatives they are fine. But inside a template changes do not propagate outside the template, so there should not be a problem of using them.<br />
Note 2) What is the evaluation order inside a template, is this fixed to be top down? Or what is the order in case of a modified template? If this is not fixed there might be unexpected results. Despite of note 1) it might be best to keep the restriction in item j) to avoid surprises.</td></tr><tr class="print"><td class="print-category">Tags</td><td class="print" colspan="5">No tags attached.</td></tr><tr class="print"><td class="print-category">Relationships</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Attached Files</td><td class="print" colspan="5"><img src="http://oldforge.etsi.org/mantis/images/fileicons/doc.gif" alt="doc" />&#160;CR-2108-Example-Uses-Function-in-Template-with-out-Parameter-Resolution.doc (210,944) <span class="italic">04-12-2007 16:19</span><br />http://oldforge.etsi.org/mantis/file_download.php?file_id=1199&amp;type=bug</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr><td class="form-title">Issue History</td></tr><tr class="print-category"><td class="row-category-history">Date Modified</td><td class="row-category-history">Username</td><td class="row-category-history">Field</td><td class="row-category-history">Change</td></tr><tr class="print"><td class="print">05-10-2007 17:31</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">New Issue</td><td class="print"></td></tr><tr class="print"><td class="print">05-10-2007 17:31</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Clause Reference(s)</td><td class="print"> =&gt; 5.4.1.1, 16.1.4</td></tr><tr class="print"><td class="print">05-10-2007 17:31</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Source  (company  - Author)</td><td class="print"> =&gt; Thomas DeiÃŸ</td></tr><tr class="print"><td class="print">13-10-2007 19:06</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Status</td><td class="print">new =&gt; assigned</td></tr><tr class="print"><td class="print">13-10-2007 19:06</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Assigned To</td><td class="print"> =&gt; Ina Schieferdecker</td></tr><tr class="print"><td class="print">13-10-2007 19:06</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Assigned To</td><td class="print">Ina Schieferdecker =&gt; Jens Grabowski</td></tr><tr class="print"><td class="print">18-10-2007 12:25</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Target Version</td><td class="print"> =&gt; Edition 3.3.1 (not yet published)</td></tr><tr class="print"><td class="print">04-12-2007 16:19</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=82">Jens Grabowski</a></td><td class="print">File Added: CR-2108-Example-Uses-Function-in-Template-with-out-Parameter-Resolution.doc</td><td class="print"></td></tr><tr class="print"><td class="print">04-12-2007 16:20</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=82">Jens Grabowski</a></td><td class="print">Note Added: 0004281</td><td class="print"></td></tr><tr class="print"><td class="print">04-12-2007 16:20</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=82">Jens Grabowski</a></td><td class="print">Assigned To</td><td class="print">Jens Grabowski =&gt; Thomas DeiÃŸ</td></tr><tr class="print"><td class="print">04-12-2007 16:20</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=82">Jens Grabowski</a></td><td class="print">Resolution</td><td class="print">open =&gt; fixed</td></tr><tr class="print"><td class="print">04-12-2007 16:54</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Note Added: 0004287</td><td class="print"></td></tr><tr class="print"><td class="print">04-12-2007 16:54</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Assigned To</td><td class="print">Thomas DeiÃŸ =&gt; Ina Schieferdecker</td></tr><tr class="print"><td class="print">04-12-2007 16:54</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Status</td><td class="print">assigned =&gt; resolved</td></tr><tr class="print"><td class="print">05-12-2007 17:11</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Status</td><td class="print">resolved =&gt; closed</td></tr><tr class="print"><td class="print">05-12-2007 17:11</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Fixed in Version</td><td class="print"> =&gt; Edition 3.3.1 (not yet published)</td></tr><tr class="print"><td class="print">12-03-2008 10:22</td><td class="print"><font STYLE="text-decoration: line-through">user10</font></td><td class="print">Fixed in Version</td><td class="print">Edition 3.3.1 --will not be published, see 3.3.2 =&gt; Edition 3.3.2 (not yet published)</td></tr><tr class="print"><td class="print">12-03-2008 10:24</td><td class="print"><font STYLE="text-decoration: line-through">user10</font></td><td class="print">Target Version</td><td class="print">Edition 3.3.1 --will not be published, see 3.3.2 =&gt; Edition 3.3.2 (not yet published)</td></tr></table>
<br />
<table class="width100" cellspacing="1">
<tr>
	<td class="form-title" colspan="2">
		Notes	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0004281)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=82">Jens Grabowski</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-12-2007 16:20&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Resolution follows the proposal of the submitter. Assigned to Thomas for crosschecking.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0004287)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				04-12-2007 16:54&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				checked by Thomas: Ok			</td>
		</tr>
		</table>
	</td>
</tr>
</table>
</body>
</html>
