Location: PHPKode > projects > SithTemplate > SithTemplate-1.1/docs/html/_i_o_8php_source.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>SithTemplate: IO.php Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.2 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<div class="header">
  <div class="headertitle">
<h1>IO.php</h1>  </div>
</div>
<div class="contents">
<a href="_i_o_8php.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 &lt;?php
<a name="l00013"></a><a class="code" href="class_template_i_o.html">00013</a> <span class="keyword">class </span><a class="code" href="class_template_i_o.html" title="Global I/O driver storage.">TemplateIO</a> {
<a name="l00017"></a><a class="code" href="class_template_i_o.html#adbbf7fa991801274975f8c0d3ef5f314">00017</a>  <span class="keyword">private</span> <span class="keyword">static</span> <a class="code" href="class_template_i_o.html#adbbf7fa991801274975f8c0d3ef5f314" title="I/O driver registry.">$ioDrivers</a> = array(
<a name="l00018"></a>00018   <span class="comment">// name =&gt; array(class, instance)</span>
<a name="l00019"></a>00019   <span class="stringliteral">&#39;file&#39;</span>     =&gt; array(<span class="stringliteral">&#39;TemplateFileIO&#39;</span>,     null),
<a name="l00020"></a>00020   <span class="stringliteral">&#39;string&#39;</span>   =&gt; array(<span class="stringliteral">&#39;TemplateStringIO&#39;</span>,   null),
<a name="l00021"></a>00021  );
<a name="l00022"></a>00022  
<a name="l00029"></a><a class="code" href="class_template_i_o.html#ad9206870c5ac71fe07b4118279e59c24">00029</a>  <span class="keyword">public</span> <span class="keyword">static</span> function <span class="keyword">get</span>($driver) {
<a name="l00030"></a>00030   <span class="keywordflow">if</span> (!isset(self::$ioDrivers[$driver])) {
<a name="l00031"></a>00031    <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(
<a name="l00032"></a>00032     <span class="stringliteral">&#39;Unknown I/O driver: &quot;&#39;</span>.$driver.<span class="charliteral">&#39;&quot;&#39;</span>,
<a name="l00033"></a>00033     <a class="code" href="class_template_error.html#adcc81c7e44a611c01e633f0c7f88a89d" title="An unknown plugin error.">TemplateError::E_UNKNOWN_PLUGIN</a>
<a name="l00034"></a>00034    );
<a name="l00035"></a>00035   }
<a name="l00036"></a>00036   
<a name="l00037"></a>00037   <span class="keywordflow">if</span> (!self::$ioDrivers[$driver][1]) {
<a name="l00038"></a>00038    $klass = self::$ioDrivers[$driver][0];
<a name="l00039"></a>00039    
<a name="l00040"></a>00040    <span class="keywordflow">if</span> (!class_exists($klass)) {
<a name="l00041"></a>00041     <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(
<a name="l00042"></a>00042      <span class="stringliteral">&#39;Class &quot;&#39;</span>.$klass.<span class="stringliteral">&#39;&quot; registered for I/O driver &quot;&#39;</span>.$driver.<span class="stringliteral">&#39;&quot; does not exist&#39;</span>,
<a name="l00043"></a>00043      <a class="code" href="class_template_error.html#a694d041c1d63438166372fb6db18af7b" title="An invalid plugin error.">TemplateError::E_INVALID_PLUGIN</a>
<a name="l00044"></a>00044     );
<a name="l00045"></a>00045    }
<a name="l00046"></a>00046    
<a name="l00047"></a>00047    self::$ioDrivers[$driver][1] = <span class="keyword">new</span> $klass;
<a name="l00048"></a>00048    self::$ioDrivers[$driver][1]-&gt;driverID = $driver;
<a name="l00049"></a>00049    
<a name="l00050"></a>00050    <span class="keywordflow">if</span> (!(self::$ioDrivers[$driver][1] instanceof <a class="code" href="interface_i_template_i_o_driver.html" title="Interface required for all I/O drivers.">ITemplateIODriver</a>)) {
<a name="l00051"></a>00051     <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(
<a name="l00052"></a>00052      <span class="stringliteral">&#39;I/O driver &quot;&#39;</span>.$driver.<span class="stringliteral">&#39;&quot; does not implement ITemplateIODriver&#39;</span>,
<a name="l00053"></a>00053      <a class="code" href="class_template_error.html#a694d041c1d63438166372fb6db18af7b" title="An invalid plugin error.">TemplateError::E_INVALID_PLUGIN</a>
<a name="l00054"></a>00054     );
<a name="l00055"></a>00055    }
<a name="l00056"></a>00056   }
<a name="l00057"></a>00057   
<a name="l00058"></a>00058   <span class="keywordflow">return</span> self::$ioDrivers[$driver][1];
<a name="l00059"></a>00059  }
<a name="l00060"></a>00060  
<a name="l00067"></a><a class="code" href="class_template_i_o.html#a5b2d380a38929dd3e1df52ec5218467f">00067</a>  <span class="keyword">public</span> <span class="keyword">static</span> function <span class="keyword">register</span>($driver, $className) {
<a name="l00068"></a>00068   <span class="keywordflow">if</span> (mb_strpos($driver, <span class="stringliteral">&#39;://&#39;</span>) !== <span class="keyword">false</span>) {
<a name="l00069"></a>00069    <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(<span class="stringliteral">&#39;I/O driver name cannot contain &quot;://&quot;&#39;</span>, <a class="code" href="class_template_error.html#aa33bae77cab676e7fcf3daf9ac6d3fd0" title="An invalid argument error.">TemplateError::E_INVALID_ARGUMENT</a>);
<a name="l00070"></a>00070   }
<a name="l00071"></a>00071   self::$ioDrivers[$driver] = array($className, null);
<a name="l00072"></a>00072  }
<a name="l00073"></a>00073 }
<a name="l00074"></a>00074 
<a name="l00078"></a><a class="code" href="class_template_file_i_o.html">00078</a> <span class="keyword">class </span><a class="code" href="class_template_file_i_o.html" title="File I/O implementation.">TemplateFileIO</a> <span class="keyword">implements</span> <a class="code" href="interface_i_template_i_o_driver.html" title="Interface required for all I/O drivers.">ITemplateIODriver</a> {
<a name="l00084"></a><a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">00084</a>  <span class="keyword">protected</span> function <a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">pfn</a>(array &amp;$settings, &amp;$template) {
<a name="l00085"></a>00085   $out = $settings[<span class="stringliteral">&#39;outputPrefix&#39;</span>].<span class="stringliteral">&#39;tpl.&#39;</span>.$template;
<a name="l00086"></a>00086   <span class="keywordflow">return</span> array(
<a name="l00087"></a>00087    $settings[<span class="stringliteral">&#39;inputPrefix&#39;</span>].$template,
<a name="l00088"></a>00088    $out.<span class="stringliteral">&#39;.code.php&#39;</span>, $out.<span class="stringliteral">&#39;.metadata&#39;</span>
<a name="l00089"></a>00089   );
<a name="l00090"></a>00090  }
<a name="l00091"></a>00091  
<a name="l00093"></a><a class="code" href="class_template_file_i_o.html#aa4bc432153892d73c14e19ff2fb55400">00093</a>  <span class="keyword">public</span> function <a class="code" href="class_template_file_i_o.html#aa4bc432153892d73c14e19ff2fb55400">upToDate</a>(array &amp;$settings, &amp;$template, $mode) {
<a name="l00094"></a>00094   list($input, $codeOutput, $metaOutput) = $this-&gt;<a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">pfn</a>($settings, $template);
<a name="l00095"></a>00095   
<a name="l00096"></a>00096   <span class="keywordflow">if</span> (!file_exists($input)) {
<a name="l00097"></a>00097    <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(
<a name="l00098"></a>00098     <span class="stringliteral">&#39;Template &quot;&#39;</span>.$input.<span class="stringliteral">&#39;&quot; does not exist. Check for prefix correctness and filename misspellings&#39;</span>,
<a name="l00099"></a>00099     <a class="code" href="class_template_error.html#a1c6f0bf460ba23e1593231b9dca910a1" title="An I/O read error.">TemplateError::E_IO_LOAD_FAILURE</a>
<a name="l00100"></a>00100    );
<a name="l00101"></a>00101   }
<a name="l00102"></a>00102   
<a name="l00103"></a>00103   <span class="keywordflow">if</span> ($mode == <a class="code" href="class_template_environ.html#a5b9029c41ea8dec7765f56b762a349d5" title="One of recompilation modes - always recompile.">TemplateEnviron::RECOMPILE_ALWAYS</a> || !file_exists($codeOutput) || !file_exists($metaOutput)) {
<a name="l00104"></a>00104    <span class="comment">// if either metadata or compiled code is missing, then recompilation is necessary</span>
<a name="l00105"></a>00105    <span class="comment">// if mode is RECOMPILE_ALWAYS then no checks are necessary</span>
<a name="l00106"></a>00106    <span class="keywordflow">return</span> <span class="keyword">false</span>;
<a name="l00107"></a>00107   } elseif ($mode == <a class="code" href="class_template_environ.html#a9d912ae01fa388c0e04af9085327eda1" title="One of recompilation modes - never recompile (a.k.a.">TemplateEnviron::RECOMPILE_NEVER</a>) {
<a name="l00108"></a>00108    <span class="comment">// if both output file exist then compilation is not required</span>
<a name="l00109"></a>00109    <span class="keywordflow">return</span> <span class="keyword">true</span>;
<a name="l00110"></a>00110   } elseif ($mode == <a class="code" href="class_template_environ.html#a78aacb9bf4a8ffd591bfb89e12f2637d" title="One of recompilation modes - recompile only when necessary (default).">TemplateEnviron::RECOMPILE_IF_CHANGED</a>) {
<a name="l00111"></a>00111    <span class="comment">// we know that file exists, but we don&#39;t know whether source has changed since last compilation</span>
<a name="l00112"></a>00112    <span class="keywordflow">return</span> (filemtime($codeOutput) &gt;= filemtime($input));
<a name="l00113"></a>00113   } <span class="keywordflow">else</span> {
<a name="l00114"></a>00114    <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(
<a name="l00115"></a>00115     <span class="stringliteral">&#39;Invalid recompilation mode set (&#39;</span>.$mode.<span class="stringliteral">&#39;) for template &quot;&#39;</span>.$template.<span class="charliteral">&#39;&quot;&#39;</span>,
<a name="l00116"></a>00116     <a class="code" href="class_template_error.html#aa33bae77cab676e7fcf3daf9ac6d3fd0" title="An invalid argument error.">TemplateError::E_INVALID_ARGUMENT</a>
<a name="l00117"></a>00117    );
<a name="l00118"></a>00118   }
<a name="l00119"></a>00119  }
<a name="l00120"></a>00120  
<a name="l00122"></a><a class="code" href="class_template_file_i_o.html#aa8a87a009b5abb1b77ede6e514ec1b51">00122</a>  <span class="keyword">public</span> function <a class="code" href="class_template_file_i_o.html#aa8a87a009b5abb1b77ede6e514ec1b51">includeCode</a>(array &amp;$settings, &amp;$template) {
<a name="l00123"></a>00123   $className = $this-&gt;<a class="code" href="class_template_file_i_o.html#aed074d5ef58838473230d4b46a954e32">className</a>($settings, $template);
<a name="l00124"></a>00124   <span class="keywordflow">if</span> (class_exists($className)) <span class="keywordflow">return</span> $className;
<a name="l00125"></a>00125   
<a name="l00126"></a>00126   list($input, $codeOutput,) = $this-&gt;<a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">pfn</a>($settings, $template);
<a name="l00127"></a>00127   include_once $codeOutput;
<a name="l00128"></a>00128   
<a name="l00129"></a>00129   <span class="keywordflow">if</span> (!class_exists($className)) {
<a name="l00130"></a>00130    <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(
<a name="l00131"></a>00131     <span class="stringliteral">&#39;Compiled template &quot;&#39;</span>.$codeOutput.<span class="stringliteral">&#39;&quot; is damaged (class &quot;&#39;</span>.$className.<span class="stringliteral">&#39;&quot; does not exist) - recompile.&#39;</span>,
<a name="l00132"></a>00132     <a class="code" href="class_template_error.html#a1c6f0bf460ba23e1593231b9dca910a1" title="An I/O read error.">TemplateError::E_IO_LOAD_FAILURE</a>
<a name="l00133"></a>00133    );
<a name="l00134"></a>00134   }
<a name="l00135"></a>00135   
<a name="l00136"></a>00136   <span class="keywordflow">return</span> $className;
<a name="l00137"></a>00137  }
<a name="l00138"></a>00138  
<a name="l00140"></a><a class="code" href="class_template_file_i_o.html#aed074d5ef58838473230d4b46a954e32">00140</a>  <span class="keyword">public</span> function <a class="code" href="class_template_file_i_o.html#aed074d5ef58838473230d4b46a954e32">className</a>(array &amp;$settings, &amp;$template) {
<a name="l00141"></a>00141   <span class="keywordflow">return</span> <a class="code" href="class_template_file_i_o.html#aed074d5ef58838473230d4b46a954e32">TemplateUtils::className</a>($template);
<a name="l00142"></a>00142  }
<a name="l00143"></a>00143  
<a name="l00145"></a><a class="code" href="class_template_file_i_o.html#ada9cd20bbab985fc9b1a7b1075c1505a">00145</a>  <span class="keyword">public</span> function <a class="code" href="class_template_file_i_o.html#ada9cd20bbab985fc9b1a7b1075c1505a">loadTemplate</a>(array &amp;$settings, &amp;$template) {
<a name="l00146"></a>00146   list($input,,) = $this-&gt;<a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">pfn</a>($settings, $template);
<a name="l00147"></a>00147   <span class="keywordflow">return</span> file_get_contents($input);
<a name="l00148"></a>00148  }
<a name="l00149"></a>00149  
<a name="l00151"></a><a class="code" href="class_template_file_i_o.html#a28ee02c3eb6d02b9acf13af1422f041a">00151</a>  <span class="keyword">public</span> function <a class="code" href="class_template_file_i_o.html#a28ee02c3eb6d02b9acf13af1422f041a">loadMetadata</a>(array &amp;$settings, &amp;$template) {
<a name="l00152"></a>00152   list($input,,$metaOutput) = $this-&gt;<a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">pfn</a>($settings, $template);
<a name="l00153"></a>00153   <span class="keywordflow">return</span> unserialize(file_get_contents($metaOutput));
<a name="l00154"></a>00154  }
<a name="l00155"></a>00155  
<a name="l00157"></a><a class="code" href="class_template_file_i_o.html#a7985ad8b2254566aa39fe4d98bb624c0">00157</a>  <span class="keyword">public</span> function <a class="code" href="class_template_file_i_o.html#a7985ad8b2254566aa39fe4d98bb624c0">saveTemplate</a>(array &amp;$settings, &amp;$template, &amp;$code) {
<a name="l00158"></a>00158   list($input,$codeOutput,) = $this-&gt;<a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">pfn</a>($settings, $template);
<a name="l00159"></a>00159   <span class="keywordflow">return</span> file_put_contents($codeOutput, $code, LOCK_EX);
<a name="l00160"></a>00160  }
<a name="l00161"></a>00161  
<a name="l00163"></a><a class="code" href="class_template_file_i_o.html#a2ddfb64f962890e154e6dc5ab16f26e7">00163</a>  <span class="keyword">public</span> function <a class="code" href="class_template_file_i_o.html#a2ddfb64f962890e154e6dc5ab16f26e7">saveMetadata</a>(array &amp;$settings, &amp;$template, array &amp;$metadata) {
<a name="l00164"></a>00164   list($input,,$metaOutput) = $this-&gt;<a class="code" href="class_template_file_i_o.html#aa1dac7190bee50dd281b5fd4c312850c">pfn</a>($settings, $template);
<a name="l00165"></a>00165   <span class="keywordflow">return</span> file_put_contents($metaOutput, serialize($metadata), LOCK_EX);
<a name="l00166"></a>00166  }
<a name="l00167"></a>00167 }
<a name="l00168"></a>00168 
<a name="l00172"></a><a class="code" href="class_template_string_i_o.html">00172</a> <span class="keyword">class </span><a class="code" href="class_template_string_i_o.html" title="String I/O implementation.">TemplateStringIO</a> <span class="keyword">extends</span> <a class="code" href="class_template_file_i_o.html" title="File I/O implementation.">TemplateFileIO</a> {
<a name="l00173"></a><a class="code" href="class_template_string_i_o.html#a4a43ba4a23c5087c68e3a45fbd0c061e">00173</a>  <span class="keyword">protected</span> function <a class="code" href="class_template_string_i_o.html#a4a43ba4a23c5087c68e3a45fbd0c061e">pfn</a>(array &amp;$settings, &amp;$template) {
<a name="l00174"></a>00174   $templateHash = crc32($template);
<a name="l00175"></a>00175   $result       = <a class="code" href="class_template_string_i_o.html#a4a43ba4a23c5087c68e3a45fbd0c061e">parent::pfn</a>($settings, $templateHash);
<a name="l00176"></a>00176   $result[0]    = $settings[<span class="stringliteral">&#39;outputPrefix&#39;</span>].<span class="stringliteral">&#39;tpl.&#39;</span>.$templateHash.<span class="stringliteral">&#39;.source&#39;</span>;
<a name="l00177"></a>00177   
<a name="l00178"></a>00178   <span class="keywordflow">if</span> (!file_exists($result[0])) {
<a name="l00179"></a>00179    file_put_contents($result[0], $template, LOCK_EX);
<a name="l00180"></a>00180   }
<a name="l00181"></a>00181   
<a name="l00182"></a>00182   <span class="keywordflow">return</span> $result;
<a name="l00183"></a>00183  }
<a name="l00184"></a>00184  
<a name="l00185"></a><a class="code" href="class_template_string_i_o.html#a24c000d1d1c51f66aafb5675317548b6">00185</a>  <span class="keyword">public</span> function <a class="code" href="class_template_string_i_o.html#a24c000d1d1c51f66aafb5675317548b6">upToDate</a>(array &amp;$settings, &amp;$template, $mode) {
<a name="l00186"></a>00186   list($input, $codeOutput, $metaOutput) = $this-&gt;<a class="code" href="class_template_string_i_o.html#a4a43ba4a23c5087c68e3a45fbd0c061e">pfn</a>($settings, $template);
<a name="l00187"></a>00187   <span class="keywordflow">return</span> (
<a name="l00188"></a>00188    $mode != <a class="code" href="class_template_environ.html#a5b9029c41ea8dec7765f56b762a349d5" title="One of recompilation modes - always recompile.">TemplateEnviron::RECOMPILE_ALWAYS</a> &amp;&amp;
<a name="l00189"></a>00189    file_exists($codeOutput) &amp;&amp; file_exists($metaOutput)
<a name="l00190"></a>00190   );
<a name="l00191"></a>00191  }
<a name="l00192"></a>00192  
<a name="l00193"></a><a class="code" href="class_template_string_i_o.html#a41da9f90eb44c9624cb3ff2066b8f2d6">00193</a>  <span class="keyword">public</span> function <a class="code" href="class_template_string_i_o.html#a41da9f90eb44c9624cb3ff2066b8f2d6">includeCode</a>(array &amp;$settings, &amp;$template) {
<a name="l00194"></a>00194   $className = <a class="code" href="class_template_string_i_o.html#ad9c9f9b3a1333243ce45f26de8a5fa94">TemplateUtils::className</a>(crc32($template));
<a name="l00195"></a>00195   <span class="keywordflow">if</span> (class_exists($className)) <span class="keywordflow">return</span> $className;
<a name="l00196"></a>00196 
<a name="l00197"></a>00197   list($input, $codeOutput,) = $this-&gt;<a class="code" href="class_template_string_i_o.html#a4a43ba4a23c5087c68e3a45fbd0c061e">pfn</a>($settings, $template);
<a name="l00198"></a>00198   include_once $codeOutput;
<a name="l00199"></a>00199   
<a name="l00200"></a>00200   <span class="keywordflow">if</span> (!class_exists($className)) {
<a name="l00201"></a>00201    <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="class_template_error.html" title="Main and currently the only exception type thrown by SithTemplate internals.">TemplateError</a>(
<a name="l00202"></a>00202     <span class="stringliteral">&#39;Compiled template &quot;&#39;</span>.$codeOutput.<span class="stringliteral">&#39;&quot; is damaged (class &quot;&#39;</span>.$className.<span class="stringliteral">&#39;&quot; does not exist) - recompile.&#39;</span>,
<a name="l00203"></a>00203     <a class="code" href="class_template_error.html#a1c6f0bf460ba23e1593231b9dca910a1" title="An I/O read error.">TemplateError::E_IO_LOAD_FAILURE</a>
<a name="l00204"></a>00204    );
<a name="l00205"></a>00205   }
<a name="l00206"></a>00206   
<a name="l00207"></a>00207   <span class="keywordflow">return</span> $className;
<a name="l00208"></a>00208  }
<a name="l00209"></a>00209  
<a name="l00210"></a><a class="code" href="class_template_string_i_o.html#ad9c9f9b3a1333243ce45f26de8a5fa94">00210</a>  <span class="keyword">public</span> function <a class="code" href="class_template_string_i_o.html#ad9c9f9b3a1333243ce45f26de8a5fa94">className</a>(array &amp;$settings, &amp;$template) {
<a name="l00211"></a>00211   <span class="keywordflow">return</span> <a class="code" href="class_template_string_i_o.html#ad9c9f9b3a1333243ce45f26de8a5fa94">TemplateUtils::className</a>(crc32($template));
<a name="l00212"></a>00212  }
<a name="l00213"></a>00213 }
</pre></div></div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Fri Jan 14 2011 20:08:37 for SithTemplate by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address>
</body>
</html>
Return current item: SithTemplate