<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://osupdocs.forestry.oregonstate.edu/index.php?action=history&amp;feed=atom&amp;title=Writing_a_Custom_Task</id>
	<title>Writing a Custom Task - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://osupdocs.forestry.oregonstate.edu/index.php?action=history&amp;feed=atom&amp;title=Writing_a_Custom_Task"/>
	<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;action=history"/>
	<updated>2026-05-04T18:33:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.36.2</generator>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4218&amp;oldid=prev</id>
		<title>Nairnj: /* Task Parameters */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4218&amp;oldid=prev"/>
		<updated>2015-06-11T20:15:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Task Parameters&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:15, 11 June 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input,double &amp;amp;gScaling)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input,double &amp;amp;gScaling)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because it needs to return a pointer. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;The &amp;lt;tt&amp;gt;gScaling&amp;lt;/tt&amp;gt; parameter is used by old custom tasks to allow them to work with both Legacy units and the new [[ConsistentUnits Command|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Consisten &lt;/del&gt;units mode]]. New custom tasks should not need to use this parameter. They should assume consistent units.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because it needs to return a pointer. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;The &amp;lt;tt&amp;gt;gScaling&amp;lt;/tt&amp;gt; parameter is used by old custom tasks to allow them to work with both Legacy units and the new [[ConsistentUnits Command|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Consistent &lt;/ins&gt;units mode]]. New custom tasks should not need to use this parameter. They should assume consistent units.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error.  Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error.  Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4217&amp;oldid=prev</id>
		<title>Nairnj: /* Task Parameters */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4217&amp;oldid=prev"/>
		<updated>2015-06-11T20:15:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Task Parameters&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:15, 11 June 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input,double &amp;amp;gScaling)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input,double &amp;amp;gScaling)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because it needs to return a pointer. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;The &amp;lt;tt&amp;gt;gScaling&amp;lt;/tt&amp;gt; parameter is used by old custom tasks to allow them to work with both Legacy units and the new [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ConsistenUnits &lt;/del&gt;Command|Consisten units mode]]. New custom tasks should not need to use this parameter. They should assume consistent units.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because it needs to return a pointer. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;The &amp;lt;tt&amp;gt;gScaling&amp;lt;/tt&amp;gt; parameter is used by old custom tasks to allow them to work with both Legacy units and the new [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ConsistentUnits &lt;/ins&gt;Command|Consisten units mode]]. New custom tasks should not need to use this parameter. They should assume consistent units.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error.  Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error.  Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4216&amp;oldid=prev</id>
		<title>Nairnj: /* Task Parameters */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4216&amp;oldid=prev"/>
		<updated>2015-06-11T20:14:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Task Parameters&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:14, 11 June 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot;&gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If the custom task has parameters, implement them by reading them with:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If the custom task has parameters, implement them by reading them with:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,double &amp;amp;gScaling&lt;/ins&gt;)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because it needs to return a pointer. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because it needs to return a pointer. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;The &amp;lt;tt&amp;gt;gScaling&amp;lt;/tt&amp;gt; parameter is used by old custom tasks to allow them to work with both Legacy units and the new [[ConsistenUnits Command|Consisten units mode]]. New custom tasks should not need to use this parameter. They should assume consistent units&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error.  Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error.  Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4071&amp;oldid=prev</id>
		<title>Nairnj: /* Task Parameters */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4071&amp;oldid=prev"/>
		<updated>2015-06-02T20:03:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Task Parameters&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:03, 2 June 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This is the only &lt;/del&gt;method &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;that &lt;/del&gt;does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of parameter and return a pointer to the class variable for that parameter. If &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Note that this &lt;/ins&gt;method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;because it needs to return a pointer&lt;/ins&gt;. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; Note that this method does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Initialize ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Initialize ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4070&amp;oldid=prev</id>
		<title>Nairnj: /* Task Parameters */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=4070&amp;oldid=prev"/>
		<updated>2015-06-02T20:01:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Task Parameters&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:01, 2 June 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l17&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; &amp;lt;tt&amp;gt;char *CustomTask::InputParam(char *pName,int &amp;amp;input)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pointer needed &lt;/del&gt;and return &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the actual &lt;/del&gt;pointer to the class variable for that parameter. If &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;no match &lt;/del&gt;return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. This is the only method that does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Check the parameter name in &amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt;. If it matches a defined task parameter name set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to the kind of &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;parameter &lt;/ins&gt;and return &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a &lt;/ins&gt;pointer to the class variable for that parameter. If &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;tt&amp;gt;pName&amp;lt;/tt&amp;gt; is not a valid parameter name &lt;/ins&gt;return &amp;lt;tt&amp;gt;NULL&amp;lt;/tt&amp;gt;. This is the only method that does not return &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Custom tasks support three types of parameters - doubles, ints, and text strings. For doubles and ints, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DOUBLE_NUM&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;INT_NUM&amp;lt;/tt&amp;gt;, respectively, and return pointer to the double or int variable to receive value for that parameter. For text strings, set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt; and return any non-NULL pointer. When the text string is read, this custom tasks will be called through the &amp;lt;tt&amp;gt;SetTextParameter()&amp;lt;/tt&amp;gt; function.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; &amp;lt;tt&amp;gt;void CustomTask::SetTextParameter(char *value)&amp;lt;/tt&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: To allow text parameters, the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; function should set &amp;lt;tt&amp;gt;input&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;TEXT_PARAMETER&amp;lt;/tt&amp;gt;. This setting will be immediately followed by a call to this method where the text for the parameter to be processed is in value. Note that this function does not transfer the name of the parameter. Thus, the class may need to set some variable in &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; to allow this method to know which parameter is being processed. Values of text parameters are guaranteed to be called immediately after the &amp;lt;tt&amp;gt;InputParam()&amp;lt;/tt&amp;gt; call that selects them. If the text parameter is not valid, this method can call &amp;lt;tt&amp;gt;ThrowSAXException()&amp;lt;/tt&amp;gt; to signal the error&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Initialize ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Initialize ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3838&amp;oldid=prev</id>
		<title>Nairnj: /* Basic Steps */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3838&amp;oldid=prev"/>
		<updated>2014-09-04T17:52:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Basic Steps&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:52, 4 September 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;Line 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Create new instance of your task as determined by the &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; attribute of &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Create new instance of your task as determined by the &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; attribute of &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ''This change should be the only change made to the core code''.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ''This change should be the only change made to the core code''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Support methods listed below (as needed) in the new custom task. Most methods return the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because the calling code uses it when it loops over all custom tasks. Any methods that are not needed can be omitted because the &amp;lt;tt&amp;gt;CustomTask&amp;lt;/tt&amp;gt; class provides methods that simply returns the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;. Custom tasks are done at the end of each time step and handled by the &amp;lt;tt&amp;gt;RunCustomTasksTask&amp;lt;/tt&amp;gt; class.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Support methods listed below (as needed) in the new custom task. Most methods return the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because the calling code uses it when it loops over all custom tasks. Any methods that are not needed can be omitted because the &amp;lt;tt&amp;gt;CustomTask&amp;lt;/tt&amp;gt; class provides &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;place-holder &lt;/ins&gt;methods that simply returns the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;. Custom tasks are done at the end of each time step and handled by the &amp;lt;tt&amp;gt;RunCustomTasksTask&amp;lt;/tt&amp;gt; class.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Task Parameters ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Task Parameters ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3837&amp;oldid=prev</id>
		<title>Nairnj: /* Basic Steps */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3837&amp;oldid=prev"/>
		<updated>2014-09-04T17:52:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Basic Steps&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:52, 4 September 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot;&gt;Line 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Create new instance of your task as determined by the &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; attribute of &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Create new instance of your task as determined by the &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; attribute of &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ''This change should be the only change made to the core code''.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ''This change should be the only change made to the core code''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Support methods listed below (as needed) in the new custom task. Most methods return the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because the calling code uses it when it loops over all custom tasks. Any that are not needed can be omitted because the &amp;lt;tt&amp;gt;CustomTask&amp;lt;/tt&amp;gt; class provides methods that simply returns the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;. Custom tasks are done at the end of each time step and handled by the &amp;lt;tt&amp;gt;RunCustomTasksTask&amp;lt;/tt&amp;gt; class.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Support methods listed below (as needed) in the new custom task. Most methods return the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because the calling code uses it when it loops over all custom tasks. Any &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;methods &lt;/ins&gt;that are not needed can be omitted because the &amp;lt;tt&amp;gt;CustomTask&amp;lt;/tt&amp;gt; class provides methods that simply returns the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;. Custom tasks are done at the end of each time step and handled by the &amp;lt;tt&amp;gt;RunCustomTasksTask&amp;lt;/tt&amp;gt; class.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Task Parameters ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Task Parameters ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3836&amp;oldid=prev</id>
		<title>Nairnj: /* Basic Steps */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3836&amp;oldid=prev"/>
		<updated>2014-09-04T17:51:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Basic Steps&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:51, 4 September 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** See code section that handles the &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** See code section that handles the &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Create new instance of your task as determined by the &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; attribute of &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Create new instance of your task as determined by the &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; attribute of &amp;lt;tt&amp;gt;Schedule&amp;lt;/tt&amp;gt; element&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** This change should be the only change &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;done &lt;/del&gt;to the core code.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;''&lt;/ins&gt;This change should be the only change &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;made &lt;/ins&gt;to the core code&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;''&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Support methods listed below (as needed) in the new custom task. Most methods return the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because the calling code uses it when it loops over all custom tasks. Any that are not needed can be omitted because the &amp;lt;tt&amp;gt;CustomTask&amp;lt;/tt&amp;gt; class provides methods that simply returns the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;. Custom tasks are done at the end of each time step and handled by the &amp;lt;tt&amp;gt;RunCustomTasksTask&amp;lt;/tt&amp;gt; class.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Support methods listed below (as needed) in the new custom task. Most methods return the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt; because the calling code uses it when it loops over all custom tasks. Any that are not needed can be omitted because the &amp;lt;tt&amp;gt;CustomTask&amp;lt;/tt&amp;gt; class provides methods that simply returns the &amp;lt;tt&amp;gt;nextTask&amp;lt;/tt&amp;gt;. Custom tasks are done at the end of each time step and handled by the &amp;lt;tt&amp;gt;RunCustomTasksTask&amp;lt;/tt&amp;gt; class.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3835&amp;oldid=prev</id>
		<title>Nairnj at 17:51, 4 September 2014</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3835&amp;oldid=prev"/>
		<updated>2014-09-04T17:51:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:51, 4 September 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page explains how to create a new [[MPM Input Files#Custom Tasks|custom task]] and integrate it into [[NairnMPM]]. Custom tasks can be used to add many new features to the code, including &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;now &lt;/del&gt;ways to export results for visualization.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page explains how to create a new [[MPM Input Files#Custom Tasks|custom task]] and integrate it into [[NairnMPM]]. Custom tasks can be used to add many new features to the code, including &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;new &lt;/ins&gt;ways to export results for visualization.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Basic Steps ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Basic Steps ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
	<entry>
		<id>http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3834&amp;oldid=prev</id>
		<title>Nairnj: /* Custom Task Calculations */</title>
		<link rel="alternate" type="text/html" href="http://osupdocs.forestry.oregonstate.edu/index.php?title=Writing_a_Custom_Task&amp;diff=3834&amp;oldid=prev"/>
		<updated>2014-09-04T17:50:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Custom Task Calculations&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:50, 4 September 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l56&quot;&gt;Line 56:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 56:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;&amp;lt;tt&amp;gt;CustomTask *MyTask::StepCalculation(void)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;;&amp;lt;tt&amp;gt;CustomTask *MyTask::StepCalculation(void)&amp;lt;/tt&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Do the desired calculations. The code will have access to all global variables.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: Do the desired calculations. The code will have access to all global variables.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;    &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Custom Task Clean Up  ===  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Custom Task Clean Up  ===  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nairnj</name></author>
	</entry>
</feed>