Click here to Skip to main content
15,896,111 members
Articles / Programming Languages / C#

"C# Hooks For RRDtool"

Rate me:
Please Sign up or sign in to vote.
4.79/5 (26 votes)
26 May 2010GPL35 min read 240.4K   3.1K   37  
C# (.NET and Mono) library provider for RRDtool
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:st1="urn:schemas-microsoft-com:office:smarttags"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="code_project%20article_files/filelist.xml">
<link rel=Edit-Time-Data href="code_project%20article_files/editdata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>NHawk is an initiative to provide a thin RRDTool provider layer for C# (</title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="stockticker"/>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Mike Corley</o:Author>
  <o:LastAuthor>Mike Corley</o:LastAuthor>
  <o:Revision>21</o:Revision>
  <o:TotalTime>294</o:TotalTime>
  <o:Created>2008-08-04T00:02:00Z</o:Created>
  <o:LastSaved>2008-08-19T23:35:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>1552</o:Words>
  <o:Characters>8847</o:Characters>
  <o:Company>AFRL/RRS</o:Company>
  <o:Lines>73</o:Lines>
  <o:Paragraphs>20</o:Paragraphs>
  <o:CharactersWithSpaces>10379</o:CharactersWithSpaces>
  <o:Version>10.6839</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:Zoom>89</w:Zoom>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]><object
 classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object>
<style>
st1\:*{behavior:url(#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:roman;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073741899 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
h3
	{mso-style-link:"Heading 3 Char";
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	mso-outline-level:3;
	font-size:12.0pt;
	font-family:Cambria;
	color:#4F81BD;
	font-weight:bold;}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
p
	{mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
code
	{mso-style-noshow:yes;
	font-family:"Courier New";
	mso-ascii-font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-hansi-font-family:"Courier New";
	mso-bidi-font-family:"Courier New";}
pre
	{mso-style-noshow:yes;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
	font-size:12.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";}
span.Heading3Char
	{mso-style-name:"Heading 3 Char";
	mso-style-noshow:yes;
	mso-style-link:"Heading 3";
	mso-ansi-font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:Cambria;
	mso-ascii-font-family:Cambria;
	mso-hansi-font-family:Cambria;
	color:#4F81BD;
	mso-ansi-language:EN-US;
	mso-fareast-language:EN-US;
	mso-bidi-language:AR-SA;
	font-weight:bold;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-noshow:yes;
	mso-style-link:"HTML Preformatted";
	mso-ansi-font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Courier New";
	mso-ascii-font-family:"Courier New";
	mso-hansi-font-family:"Courier New";
	mso-bidi-font-family:"Courier New";
	mso-ansi-language:EN-US;
	mso-fareast-language:EN-US;
	mso-bidi-language:AR-SA;}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:209852640;
	mso-list-type:hybrid;
	mso-list-template-ids:2079868898 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
	{mso-level-text:"%1\)";
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l0:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="18434"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>

<div class=Section1>

<p class=MsoNormal align=center style='text-align:center'><b style='mso-bidi-font-weight:
normal'><span style='font-size:16.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal align=center style='text-align:center'><!--[if gte vml 1]><v:shapetype
 id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
 path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
 <v:stroke joinstyle="miter"/>
 <v:formulas>
  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  <v:f eqn="sum @0 1 0"/>
  <v:f eqn="sum 0 0 @1"/>
  <v:f eqn="prod @2 1 2"/>
  <v:f eqn="prod @3 21600 pixelWidth"/>
  <v:f eqn="prod @3 21600 pixelHeight"/>
  <v:f eqn="sum @0 0 1"/>
  <v:f eqn="prod @6 1 2"/>
  <v:f eqn="prod @7 21600 pixelWidth"/>
  <v:f eqn="sum @8 21600 0"/>
  <v:f eqn="prod @7 21600 pixelHeight"/>
  <v:f eqn="sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
 <o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_s1027" type="#_x0000_t75" style='position:absolute;
 left:0;text-align:left;margin-left:0;margin-top:0;width:1in;height:72.85pt;
 z-index:1;mso-position-horizontal:left;mso-position-vertical:top;
 mso-position-vertical-relative:line' o:allowoverlap="f">
 <v:imagedata src="code_project%20article_files/image001.png" o:title="hawk"/>
 <w:wrap type="square"/>
</v:shape><![endif]--><![if !vml]><img width=96 height=97
src="code_project%20article_files/image002.jpg" align=left hspace=12 v:shapes="_x0000_s1027"><![endif]><span
class=SpellE><b style='mso-bidi-font-weight:normal'><span style='font-size:
20.0pt;font-family:"Courier New"'>NHawk</span></b></span><b style='mso-bidi-font-weight:
normal'><span style='font-size:16.0pt;font-family:"Courier New"'> �C# Hooks for
<span class=SpellE>RRDtool</span>�<span style='mso-spacerun:yes'>� </span></span></b><!--[if gte vml 1]><v:shape
 id="_x0000_s1028" type="#_x0000_t75" style='position:absolute;left:0;
 text-align:left;margin-left:1760.35pt;margin-top:0;width:1in;height:50.35pt;
 z-index:2;mso-position-horizontal:right;mso-position-horizontal-relative:text;
 mso-position-vertical:top;mso-position-vertical-relative:line' o:allowoverlap="f">
 <v:imagedata src="code_project%20article_files/image003.png" o:title="rrdtool-logo-light"/>
 <w:wrap type="square"/>
</v:shape><![endif]--><![if !vml]><img width=96 height=67
src="code_project%20article_files/image004.gif" align=right hspace=12 v:shapes="_x0000_s1028"><![endif]><b
style='mso-bidi-font-weight:normal'><span style='font-size:16.0pt;font-family:
"Courier New"'><o:p></o:p></span></b></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-family:"Courier New"'>1) <u>Introduction<o:p></o:p></u></span></b></p>

<p class=MsoNormal><span style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family:
"Courier New"'>NHawk</span></span><span style='font-size:10.0pt;font-family:
"Courier New"'> is an initiative to provide a thin, complete <span
class=SpellE>RRDtool</span> provider for the .Net and Mono framework.<span
style='mso-spacerun:yes'>� </span>The project goal is targeted at providing a
C# interface to native <span class=SpellE>RRDtool</span> facilities through appropriate
.Net / Mono object model semantics with the intent of retaining an intuitive
syntax that fits naturally into the .Net / Mono paradigm and closely resembles
that of native <span class=SpellE>RRDtool</span>.<span
style='mso-spacerun:yes'>� </span>In doing so, <span class=SpellE>NHawk</span>
seeks to provide a powerful time series analysis toolkit library that fills a
big void in the .Net and Mono framework.<span style='mso-spacerun:yes'>�
</span>It is our hope to provide a toolkit that promotes high productively,
robustness, and expressiveness; enabling proficient C# developers to build code
interchangeably (and intuitively) with native <span class=SpellE>RRDtool</span>
script. It is a <span class=SpellE>NHawk</span> goal to promote productive use
by allowing clients to refer solely to native <span class=SpellE>RRDtool</span>
documentation resources, and thereby carry a very short learning curve (in most
cases if the developer is familiar with both <span class=SpellE>RRDtool</span>
and C#). The example code snippets that follow will hopefully illustrate the
basic concepts.<span style='mso-spacerun:yes'>� </span>Please make particular
note of syntactic similarities, and pay special attention to the section
highlighting serialization, <span class=SpellE>deserialization</span>, and <span
class=SpellE>deepcloning</span>, as these comprise powerful architectural
utility which include support for web service oriented applications as well as
for generation of, and interoperation with existing (native) <span
class=SpellE>RRDtool</span> scripts. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>The
example below is taken from an expanded tutorial which has been included along
with the version 1.0 release of the source code and binaries.<span
style='mso-spacerun:yes'>�� </span><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Please
note: that the example material that follows is derived from a tutorial created
initially by: Alex van den <span class=SpellE>Bogaerdt</span>
&lt;alex@ergens.op.het.net&gt;</span><span style='font-size:10.0pt;font-family:
Arial'> </span><span style='font-size:10.0pt;font-family:"Courier New"'>which
can be viewed at: <a
href="http://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html">http://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html</a><o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span class=SpellE><span style='font-size:10.0pt;font-family:
"Courier New"'>RRDtool</span></span><span style='font-size:10.0pt;font-family:
"Courier New"'> is written by Tobias <span class=SpellE>Oetiker</span>
&lt;tobi@oetiker.ch&gt;<o:p></o:p></span></p>

<p class=MsoNormal><u><span style='font-size:10.0pt;font-family:"Courier New";
color:#3366FF'><a href="http://oss.oetiker.ch/rrdtool/index.en.html">http://oss.oetiker.ch/rrdtool/index.en.html</a><o:p></o:p></span></u></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";
color:#3366FF'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";
color:#3366FF'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><u><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>*** See the end
of this document for contact info. <span class=GramE>and</span> information
pertaining to the development and status of the current <span class=SpellE>NHawk</span>
code revision ***<o:p></o:p></span></u></b></p>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";
color:#3366FF'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-family:"Courier New"'>2) <u>Native <span class=SpellE>RRDTool</span>
Syntax for defining and creating a Round Robin Database (RRD)<o:p></o:p></u></span></b></p>

<p class=MsoNormal><b style='mso-bidi-font-weight:normal'><span
style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></b></p>

<pre><span class=SpellE><span class=GramE>rrdtool</span></span> create <span
class=SpellE>test.rrd</span> --start 920804400<span style='mso-spacerun:yes'>��������� </span></pre><pre>DS<span
class=GramE>:speed:COUNTER:600:U:U</span><span style='mso-spacerun:yes'>�� </span></pre><pre>RRA<span
class=GramE>:AVERAGE:0.5:1:24</span><span style='mso-spacerun:yes'>������ </span></pre><pre><span style='mso-spacerun:yes'>��������</span>RRA<span
class=GramE>:AVERAGE:0.5:6:10</span></pre><pre><o:p>&nbsp;</o:p></pre>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b
style='mso-bidi-font-weight:normal'><span style='font-family:"Courier New"'>2.1)</span></b><span
style='font-size:14.0pt;color:red'> </span><b style='mso-bidi-font-weight:normal'><u><span
style='font-family:"Courier New"'>NHAWK (C#) Syntax for defining and creating a
Round Robin Database (RRD)<o:p></o:p></span></u></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><a name="IWhat_has_been_created_"><span
style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:
yes'>RRD</span></a><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> rrd1 = </span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> </span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>RRD</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#A31515;mso-no-proof:yes'>&quot;test.rrd&quot;</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>,
920804400);</span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'><o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>rrd1.addDS(</span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> </span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>DS</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#A31515;mso-no-proof:yes'>&quot;speed&quot;</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>,<span
style='mso-spacerun:yes'>� </span></span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:
yes'>DS</span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'>.<span
style='color:#2B91AF'>TYPE</span>.COUNTER, 600, <span style='color:#2B91AF'>DS</span>.U,
<span style='color:#2B91AF'>DS</span>.U)) ;<o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>rrd1.addRRA(</span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> </span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>RRA</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>RRA</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-no-proof:yes'>.<span style='color:#2B91AF'>CF</span>.AVERAGE,
0.5, 1, 24));<o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>rrd1.addRRA(</span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> </span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>RRA</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>RRA</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-no-proof:yes'>.<span style='color:#2B91AF'>CF</span>.AVERAGE,
0.5, 6, 10));<o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>rrd1.create(</span></span><span style='mso-bookmark:IWhat_has_been_created_'><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>true</span></span><span
style='mso-bookmark:IWhat_has_been_created_'><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>);</span></span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><b><span style='font-family:"Courier New";
mso-no-proof:yes'>3) <u>Native RRDTool Update Syntax<o:p></o:p></u></span></b></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
class=SpellE><span class=GramE>rrdtool</span></span> update <span class=SpellE>test.rrd</span>
920804700:12345</p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b
style='mso-bidi-font-weight:normal'><span style='font-family:"Courier New"'>3.1)
<u>NHAWK (C#) Syntax <span style='mso-bidi-font-weight:bold;mso-no-proof:yes'>Update
Syntax</span><o:p></o:p></u></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>NHawk provides a means to update an RRD by packing expected
DS (data source) arguments into an array of type object or string.<span
style='mso-spacerun:yes'>� </span>One of the following C# method overloads
should be used. <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>Note: the version with type object is explictly casted
(internally) to string as the update command is serialized and sent to rrdtool
for processing. The intent is to save you from having to explictly cast
(whenever possible). When not possible you�ll have use the string version.<span
style='mso-spacerun:yes'>� </span>Aside from that, both methods are
equivalent.<span style='mso-spacerun:yes'>�� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>rrd1.update(920804700, <span style='color:blue'>new</span><span
style='mso-bidi-font-weight:bold'> </span><span style='color:blue'>object</span><span
style='mso-bidi-font-weight:bold'>[] { 12345 });</span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>rrd1.update(920804700, <span style='color:blue'>new</span><span
style='mso-bidi-font-weight:bold'> </span><span style='color:blue'>string</span><span
style='mso-bidi-font-weight:bold'>[] { �12345� });<o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>string[] args = new string[1];<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>args[0] = �12345�;<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>rrd1.update(920804700, args<span style='mso-bidi-font-weight:
bold'>});<o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>The (current) serialized update
string can be retrieved by calling: �rrd1.CurrentUpdateStr� as in the example
below:<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>Console</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-no-proof:yes'>.WriteLine(<span style='color:#A31515'>&quot;{0}&quot;</span><span
style='mso-bidi-font-weight:bold'>, rrd1.CurrentUpdateStr);<span
style='mso-spacerun:yes'>�� </span><o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>Resulting in the following console
output�<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span class=SpellE><span class=GramE>rrdtool</span></span>
update <span class=SpellE>test.rrd</span> 920804700:12345 <span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>Note: �CurrentUpdateStr� should be
called after each call to: �</span><span style='font-size:10.0pt;font-family:
"Courier New";mso-no-proof:yes'>rrd1.update(�)�, because serialization is done
there. <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><b><span style='font-family:"Courier New";
mso-no-proof:yes'>4) <u>Native RRDTool Graph Syntax<o:p></o:p></u></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
class=SpellE><span class=GramE><span style='font-family:"Courier New"'>rrdtool</span></span></span><span
style='font-family:"Courier New"'> graph speed4.png<span
style='mso-spacerun:yes'>�������������������������� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'>--<span class=GramE>start</span> 920804400
--end 920808000<span style='mso-spacerun:yes'>�������������� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'>--vertical-label km/h<span
style='mso-spacerun:yes'>�������������������������� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
class=SpellE><span style='font-family:"Courier New"'>DEF<span class=GramE>:myspeed</span></span></span><span
style='font-family:"Courier New"'>=<span class=SpellE>test.rrd:speed:AVERAGE</span><span
style='mso-spacerun:yes'>������������� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'>&quot;<span class=SpellE>CDEF<span
class=GramE>:kmh</span></span>=myspeed,3600,*&quot;<span
style='mso-spacerun:yes'>���������������������� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
class=SpellE><span style='font-family:"Courier New"'>CDEF<span class=GramE>:fast</span></span></span><span
style='font-family:"Courier New"'>=kmh,100,GT,100,0,IF<span
style='mso-spacerun:yes'>������������������ </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
class=SpellE><span style='font-family:"Courier New"'>CDEF<span class=GramE>:over</span></span></span><span
style='font-family:"Courier New"'>=kmh,100,GT,kmh,100,-,0,IF<span
style='mso-spacerun:yes'>������������ </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
class=SpellE><span style='font-family:"Courier New"'>CDEF<span class=GramE>:good</span></span></span><span
style='font-family:"Courier New"'>=kmh,100,GT,0,kmh,IF<span
style='mso-spacerun:yes'>������������������ </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'>HRULE<span class=GramE>:100</span>#0000FF:&quot;Maximum
allowed&quot;<span style='mso-spacerun:yes'>������������� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><st1:stockticker><span
 style='font-family:"Courier New"'>AREA</span></st1:stockticker><span
class=GramE><span style='font-family:"Courier New"'>:good</span></span><span
style='font-family:"Courier New"'>#00FF00:&quot;Good speed&quot;<span
style='mso-spacerun:yes'>������������������ </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><st1:stockticker><span
 style='font-family:"Courier New"'>AREA</span></st1:stockticker><span
class=GramE><span style='font-family:"Courier New"'>:fast</span></span><span
style='font-family:"Courier New"'>#550000:&quot;Too fast&quot;<span
style='mso-spacerun:yes'>���������� </span><span
style='mso-spacerun:yes'>����������</span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'>STACK<span class=GramE>:over</span>#FF0000:&quot;Over
speed&quot;<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b
style='mso-bidi-font-weight:normal'><span style='font-family:"Courier New"'>4.1)
<u>NHAWK (C#) Syntax <span style='mso-bidi-font-weight:bold;mso-no-proof:yes'>Graph
Syntax</span></u><o:p></o:p></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>GRAPH</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> gr4 = </span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>GRAPH</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;speed4.png&quot;</span><span style='font-size:10.0pt;font-family:
"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;920804400&quot;</span><span style='font-size:10.0pt;font-family:
"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;920808000&quot;</span><span style='font-size:10.0pt;font-family:
"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>);</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.yaxislabel = </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;km/h&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>;</span><span style='font-size:
10.0pt;font-family:"Courier New";mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addDEF(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>DEF</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;myspeed&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>, rrd1, </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;speed&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span style='font-size:
10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>RRA</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'>.<span
style='color:#2B91AF'>CF</span>.AVERAGE));<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addCDEF(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>CDEF</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;kmh&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span style='font-size:
10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:yes'>&quot;myspeed,3600,*&quot;</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>));</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addCDEF(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>CDEF</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;fast&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span style='font-size:
10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:yes'>&quot;kmh,100,GT,kmh,0,IF&quot;</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>));</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addCDEF(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>CDEF</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;over&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span style='font-size:
10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:yes'>&quot;kmh,100,GT,kmh,100,-,0,IF&quot;</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>));</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addCDEF(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>CDEF</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;good&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span style='font-size:
10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:yes'>&quot;kmh,100,GT,0,kmh,IF&quot;</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>));</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addGELEM(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>HRULE</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;100&quot;</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span style='font-size:
10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>Color</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'>.Blue, <span
style='color:#A31515'>&quot;Maximum allowed&quot;</span><span style='mso-bidi-font-weight:
bold'>));</span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addGELEM(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><st1:stockticker><span style='font-size:10.0pt;
 font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>AREA</span></st1:stockticker><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>(</span><span style='font-size:10.0pt;font-family:"Courier New";
color:#A31515;mso-no-proof:yes'>&quot;good&quot;</span><span style='font-size:
10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:
yes'>Color</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>.Green, <span style='color:#A31515'>&quot;Good speed&quot;</span><span
style='mso-bidi-font-weight:bold'>));</span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addGELEM(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><st1:stockticker><span style='font-size:10.0pt;
 font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>AREA</span></st1:stockticker><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>(</span><span style='font-size:10.0pt;font-family:"Courier New";
color:#A31515;mso-no-proof:yes'>&quot;fast&quot;</span><span style='font-size:
10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:
yes'>Color</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>.Brown, <span style='color:#A31515'>&quot;Too fast&quot;</span><span
style='mso-bidi-font-weight:bold'>));</span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addGELEM(</span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><st1:stockticker><span style='font-size:10.0pt;
 font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>AREA</span></st1:stockticker><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>(</span><span style='font-size:10.0pt;font-family:"Courier New";
color:#A31515;mso-no-proof:yes'>&quot;over&quot;</span><span style='font-size:
10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>, </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:
yes'>Color</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>.Red, <span style='color:#A31515'>&quot;Over speed&quot;</span><span
style='mso-bidi-font-weight:bold'>,</span><span style='color:blue'>true</span><span
style='mso-bidi-font-weight:bold'>));</span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>gr4.graph();<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'><!--[if gte vml 1]><v:shape id="_x0000_i1025"
 type="#_x0000_t75" style='width:372.75pt;height:126pt'>
 <v:imagedata src="code_project%20article_files/image005.png" o:title="speed4"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=497 height=168
src="code_project%20article_files/image006.gif" v:shapes="_x0000_i1025"><![endif]><u><o:p></o:p></u></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'>Note:
the NHAWK code line</span><span style='font-size:10.0pt'>: <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='mso-spacerun:yes'>���������� </span><i
style='mso-bidi-font-style:normal'><span style='font-size:10.0pt;font-family:
"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>gr4.addGELEM(</span></i><i
style='mso-bidi-font-style:normal'><span style='font-size:10.0pt;font-family:
"Courier New";color:blue;mso-no-proof:yes'>new</span></i><i style='mso-bidi-font-style:
normal'><span style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:
bold;mso-no-proof:yes'> </span></i><st1:stockticker><i style='mso-bidi-font-style:
 normal'><span style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;
 mso-no-proof:yes'>AREA</span></i></st1:stockticker><i style='mso-bidi-font-style:
normal'><span style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:
bold;mso-no-proof:yes'>(</span></i><i style='mso-bidi-font-style:normal'><span
style='font-size:10.0pt;font-family:"Courier New";color:#A31515;mso-no-proof:
yes'>&quot;over&quot;</span></i><i style='mso-bidi-font-style:normal'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>, </span></i><i style='mso-bidi-font-style:normal'><span
style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:
yes'>Color</span></i><i style='mso-bidi-font-style:normal'><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'>.Red, <span
style='color:#A31515'>&quot;Over speed&quot;</span><span style='mso-bidi-font-weight:
bold'>,</span><span style='color:blue'>true</span><span style='mso-bidi-font-weight:
bold'>));</span></span></i><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><span
style='mso-spacerun:yes'>����������� </span></span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>is
semantically equivalent to:</span><span style='font-family:"Courier New"'><span
style='mso-spacerun:yes'>�� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New"'><span style='mso-spacerun:yes'>�����������
</span><i style='mso-bidi-font-style:normal'>STACK:over#FF0000:&quot;Over
speed&quot;</i> <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>NHAWK is using the newer syntactic constructs, as the STACK<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>construct as a direct graphing element is deprecated as of
RRDTool 1.3<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b
style='mso-bidi-font-weight:normal'><span style='font-family:"Courier New"'>5) <u>NHAWK
architectural features: Serialization and <span class=SpellE>Deserialization</span>
and <span class=SpellE>Deepcloning</span> <o:p></o:p></u></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b
style='mso-bidi-font-weight:normal'><u><span style='font-size:10.0pt;
font-family:"Courier New"'><o:p><span style='text-decoration:none'>&nbsp;</span></o:p></span></u></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";color:black'>All NHAWK
constructs are built as composite structures, in which a contract states that
each construct must be able to serialize, <span class=SpellE>deserialize</span>,
and <span class=SpellE>deepclone</span> itself (see the UML architecture
diagram available with the source download).<span style='mso-spacerun:yes'>�
</span>In other words, a higher level construct (such as the GRAPH class) would
serialize itself by asking all of its composed constructs to serialize
themselves.<span style='mso-spacerun:yes'>� </span>This is a powerful feature
in that it opens up a whole new level of functionality. This includes the
generation and interoperation with (native) <span class=SpellE>RRDTool</span>
script, as well as ease of use with service orientated architectures such as
web service applications. Below we illustrate with an example for the GRAPH
class.<span style='mso-spacerun:yes'>� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";color:red'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>GRAPH</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> gr5 = </span><span
style='font-size:10.0pt;font-family:"Courier New";color:blue;mso-no-proof:yes'>new</span><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'> </span><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>GRAPH</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>(gr4.ToString(),
</span><span style='font-size:10.0pt;font-family:"Courier New";color:#A31515;
mso-no-proof:yes'>&quot;.\\&quot;</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>); </span><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>Console</span><span
style='font-family:"Courier New";mso-no-proof:yes'>.WriteLine(<span
style='color:#A31515'>&quot;{0}&quot;</span><span style='mso-bidi-font-weight:
bold'>, gr5.ToString());</span></span><span style='font-size:10.0pt;font-family:
"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>The above code snippet performs the following operations<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><span style='mso-list:Ignore'>1)<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>graph object g4 is serialized and
passed to the GRAPH class<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>deserialization
(promotion) constructor.<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>�</span><o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><span style='mso-list:Ignore'>2)<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>graph object g5 is instantiated by
deserialing the serialized<span style='mso-spacerun:yes'>����� </span><o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.25in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>���� </span>(string) form of
object g4.<o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.25in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo2;
tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'><span style='mso-list:Ignore'>3)<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]><span style='font-size:10.0pt;font-family:"Courier New";
mso-bidi-font-weight:bold;mso-no-proof:yes'>object g5 is serialized and written
to the console as shown <o:p></o:p></span></p>

<p class=MsoNormal style='margin-left:.25in;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>���� </span>below�<span
style='mso-spacerun:yes'>� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";color:red;mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'>graph
speed4.png --start 920804400 --end 920808000<span style='mso-spacerun:yes'>�
</span><o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'>--vertical-label
&quot;km/h&quot;<o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span><span class=SpellE>DEF:myspeed</span>=<span
class=SpellE>test.rrd:speed:AVERAGE</span> <o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span><span class=SpellE>CDEF:kmh</span>=myspeed,3600,*
<o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span><span class=SpellE>CDEF:fast</span>=kmh,100,GT,kmh,0,IF
<o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span><span class=SpellE>CDEF:over</span>=kmh,100,GT,kmh,100,-,0,IF<o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span><span class=SpellE>CDEF:good</span>=kmh,100,GT,0,kmh,IF<o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span>HRULE:100#0000FF:&quot;Maximum allowed&quot; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span></span><st1:stockticker><span
 style='font-size:10.0pt;font-family:"Courier New"'>AREA</span></st1:stockticker><span
class=GramE><span style='font-size:10.0pt;font-family:"Courier New"'>:good</span></span><span
style='font-size:10.0pt;font-family:"Courier New"'>#008000:&quot;Good
speed&quot; <o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span></span><st1:stockticker><span
 style='font-size:10.0pt;font-family:"Courier New"'>AREA</span></st1:stockticker><span
class=GramE><span style='font-size:10.0pt;font-family:"Courier New"'>:fast</span></span><span
style='font-size:10.0pt;font-family:"Courier New"'>#A52A2A:&quot;Too
fast&quot;<span style='mso-spacerun:yes'>� </span><o:p></o:p></span></p>

<p class=MsoNormal style='mso-pagination:none;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New"'><span
style='mso-spacerun:yes'>�</span></span><st1:stockticker><span
 style='font-size:10.0pt;font-family:"Courier New"'>AREA</span></st1:stockticker><span
class=GramE><span style='font-size:10.0pt;font-family:"Courier New"'>:over</span></span><span
style='font-size:10.0pt;font-family:"Courier New"'>#FF0000:&quot;Over
speed&quot;<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";color:red;mso-bidi-font-weight:
bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";color:red;mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'>5.1) </span></b><b><u><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'>DeepCloning,
and why NHawk has</span></u></b><u><span style='font-size:10.0pt;font-family:
"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> <b>it</b><o:p></o:p></span></u></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-family:"Courier New";color:red;
mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
mso-layout-grid-align:none'><span style='font-size:10.0pt;font-family:"Courier New";
color:#2B91AF;mso-no-proof:yes'>GRAPH</span><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'> gr6 = </span><span
style='font-size:10.0pt;font-family:"Courier New";color:#2B91AF;mso-no-proof:
yes'>GRAPH</span><span style='font-size:10.0pt;font-family:"Courier New";
mso-no-proof:yes'>.DeepClone(gr5);<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>Console</span><span
style='font-family:"Courier New";mso-no-proof:yes'>.WriteLine(<span
style='color:#A31515'>&quot;\n{0}&quot;</span><span style='mso-bidi-font-weight:
bold'>, gr6.ToString());</span></span><span style='font-size:10.0pt;font-family:
"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";color:red;mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>Above object gr6 is a (new memory) copy of gr5.<span
style='mso-spacerun:yes'>� </span>Essentially, NHawk is really just a whole
load of parsing, and therefore every aggregated class member is either a string
or a value type.<span style='mso-spacerun:yes'>� </span>Value types are deep
copied by default, and although string is a<span style='mso-spacerun:yes'>��
</span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>reference type, NHAWK uses temporary StringBuilders to return
newly constructed (new memory) string objects.<span style='mso-spacerun:yes'>�
</span>This could prove useful in may circumstances because it provides limited
preservation of object identity.<span style='mso-spacerun:yes'>� </span>an
object model (shallow reference) which <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>works on premise of not having object identity.<span
style='mso-spacerun:yes'>� </span>Finally, just for completeness the below code
snippet illustrates the usual shallow copy.<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";color:#2B91AF;mso-no-proof:yes'>GRAPH</span><span
style='font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'>
gr7 = gr6;<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'>6) <u>Current Project Status
and Code Availability<o:p></o:p></u></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>The current code base is in version: 1.0.<span
style='mso-spacerun:yes'>� </span>Many RRDtool features are curently
supported.<span style='mso-spacerun:yes'>� </span>The project was initiated
around 15 May 08 and I am only developer (so far), and therefore resources are
limited. The following list shows progress for the past several<span
style='mso-spacerun:yes'>�� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>months, which includes the development of all documentation
resources.<span style='mso-spacerun:yes'>� </span>It is my intent to complete
the 1.0 code base in a timely fashion, as well as keep up with bug fixes,
etc.<span style='mso-spacerun:yes'>� </span>Much of what evolves will be
dependent on feedback and interest from folks in the <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>community (requests for features/changes etc).<span
style='mso-spacerun:yes'>� </span>I am very open to suggestions and ideas, and
certainly to people who would like to test and/or contribute code and
documentation.<span style='mso-spacerun:yes'>� </span>I use C# .Net
professionally, and really like Mono and RRDtool. My hope is that <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>others will take interest and contribute so that all us .Net
developers can benefit from RRDtool.<span style='mso-spacerun:yes'>��
</span>Mike C. (08/10/08) <o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'>6.1) <u>Current code base:
revision: 1.0<o:p></o:p></u></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><u><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'><o:p><span
 style='text-decoration:none'>&nbsp;</span></o:p></span></u></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>DEF<span style='mso-spacerun:yes'>� </span>(Graph
Definitions)<span style='mso-spacerun:yes'>����� </span>== 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>CDEF (Graph Calc Definitions) == 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>RRD (Defining, creating, and loading existing Round
Robin<span style='mso-spacerun:yes'>� </span>Database files).<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>DS<span style='mso-spacerun:yes'>� </span>(data source) ==
100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>RRA (round robin archives) == 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>GRAPHING ELEMENTS<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span></span><st1:stockticker><span
 style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
 mso-no-proof:yes'>LINE</span></st1:stockticker><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><span
style='mso-spacerun:yes'>� </span>== 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span></span><st1:stockticker><span
 style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
 mso-no-proof:yes'>AREA</span></st1:stockticker><span style='font-size:10.0pt;
font-family:"Courier New";mso-bidi-font-weight:bold;mso-no-proof:yes'><span
style='mso-spacerun:yes'>� </span>== 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>VRULE == 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>HRULE == 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>SHIFT == 100%<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>GRAPH == 90% (approx.
needs VDEF, PRINT Elements)<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>Current TODO List
(for features I plan to implement next).<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>Timeline: 2-4
weeks.<span style='mso-spacerun:yes'>� </span>Note: once the list below is
completed, tested and added what�s already be done, then the vast majority of
the major rrdtool features will be complete. This is a very do-able
project.<span style='mso-spacerun:yes'>� </span><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>-- VDEF<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>-- PRINT Elements<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>� </span>-- RRDFetch<span
style='color:red'> <o:p></o:p></span></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";color:red;mso-bidi-font-weight:
bold;mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'>6.2) <u>Compilation
instructions and library usage<o:p></o:p></u></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>���� </span><span
style='mso-spacerun:yes'>�</span>See the user manual included with the source
download.<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'>6.3) <u>Getting Started</u><o:p></o:p></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>���� </span><span
style='mso-spacerun:yes'>�</span>For a quick start, see the tutorial (included
with the source) located in: &quot;<u>NHawk\tutorials\rrdtutorial.en.html</u>&quot;<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>���� </span><span
style='mso-spacerun:yes'>�</span>The source code can be compiled and executed
from folder: &quot;<u>NHawk\tutorials\rrdtutorial1_code</u>&quot;<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'><o:p>&nbsp;</o:p></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-size:10.0pt;font-family:"Courier New";mso-no-proof:yes'><span
style='mso-spacerun:yes'>���� </span><span style='mso-spacerun:yes'>�</span></span></b><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'>RRDtool can be downloaded from<span
style='mso-spacerun:yes'>������������� </span>:<span style='mso-spacerun:yes'>�
</span><a href="http://oss.oetiker.ch/rrdtool/pub/">http://oss.oetiker.ch/rrdtool/pub/</a><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>���� </span><span
style='mso-spacerun:yes'>�</span>A good site for Windows and Netware Binaries:<span
style='mso-spacerun:yes'>� </span><a href="http://www.gknw.net/mirror/rrdtool/">http://www.gknw.net/mirror/rrdtool/</a><span
style='mso-spacerun:yes'>� </span>(latest == rrdtool-1.2.28-bin-w32.zip) <b><span
style='mso-spacerun:yes'>�</span><o:p></o:p></b></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'><span
style='mso-spacerun:yes'>��� </span><o:p></o:p></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><b><span
style='font-family:"Courier New";mso-no-proof:yes'>6.3) <u>Author Contact Info.<o:p></o:p></u></span></b></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>����� </span>Michael Corley<o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><span style='mso-spacerun:yes'>����� </span><a
href="mailto:mwcorley@syr.edu">mwcorley@syr.edu</a><o:p></o:p></span></p>

<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
style='font-size:10.0pt;font-family:"Courier New";mso-bidi-font-weight:bold;
mso-no-proof:yes'><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Software Developer (Senior)
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions