Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > d9faa203c2b0b6fbb179d93daaea81b7 > files > 216

libdtn-devel-2.6.0-1mdv2009.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>DTN Reference Implementation: ConvergenceLayer.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</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>
    </ul>
  </div>
<h1>ConvergenceLayer.h</h1><a href="ConvergenceLayer_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> *    Copyright 2004-2006 Intel Corporation</span>
<a name="l00003"></a>00003 <span class="comment"> * </span>
<a name="l00004"></a>00004 <span class="comment"> *    Licensed under the Apache License, Version 2.0 (the "License");</span>
<a name="l00005"></a>00005 <span class="comment"> *    you may not use this file except in compliance with the License.</span>
<a name="l00006"></a>00006 <span class="comment"> *    You may obtain a copy of the License at</span>
<a name="l00007"></a>00007 <span class="comment"> * </span>
<a name="l00008"></a>00008 <span class="comment"> *        http://www.apache.org/licenses/LICENSE-2.0</span>
<a name="l00009"></a>00009 <span class="comment"> * </span>
<a name="l00010"></a>00010 <span class="comment"> *    Unless required by applicable law or agreed to in writing, software</span>
<a name="l00011"></a>00011 <span class="comment"> *    distributed under the License is distributed on an "AS IS" BASIS,</span>
<a name="l00012"></a>00012 <span class="comment"> *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span>
<a name="l00013"></a>00013 <span class="comment"> *    See the License for the specific language governing permissions and</span>
<a name="l00014"></a>00014 <span class="comment"> *    limitations under the License.</span>
<a name="l00015"></a>00015 <span class="comment"> */</span>
<a name="l00016"></a>00016 
<a name="l00017"></a>00017 <span class="preprocessor">#ifndef _CONVERGENCE_LAYER_H_</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span><span class="preprocessor">#define _CONVERGENCE_LAYER_H_</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span>
<a name="l00020"></a>00020 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00021"></a>00021 <span class="preprocessor">#include &lt;vector&gt;</span>
<a name="l00022"></a>00022 <span class="preprocessor">#include &lt;oasys/util/Singleton.h&gt;</span>
<a name="l00023"></a>00023 <span class="preprocessor">#include &lt;oasys/serialize/Serialize.h&gt;</span>
<a name="l00024"></a>00024 
<a name="l00025"></a>00025 <span class="preprocessor">#include "<a class="code" href="contacts_2Link_8h.html">contacts/Link.h</a>"</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="Contact_8h.html">contacts/Contact.h</a>"</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="Interface_8h.html">contacts/Interface.h</a>"</span>
<a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="NamedAttribute_8h.html">contacts/NamedAttribute.h</a>"</span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="comment">// forward declaration</span>
<a name="l00031"></a>00031 <span class="keyword">namespace </span>oasys {
<a name="l00032"></a>00032 <span class="keyword">class </span>StringBuffer;
<a name="l00033"></a>00033 }
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="keyword">namespace </span>dtn {
<a name="l00036"></a>00036 
<a name="l00040"></a><a class="code" href="classdtn_1_1ConvergenceLayer.html">00040</a> <span class="keyword">class </span><a class="code" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a> : <span class="keyword">public</span> oasys::<a class="code" href="classoasys_1_1Logger.html">Logger</a> {
<a name="l00041"></a>00041 <span class="keyword">public</span>:
<a name="l00045"></a><a class="code" href="classdtn_1_1ConvergenceLayer.html#b29bdc8904c89d466dbcd9a841440921">00045</a>     <a class="code" href="classdtn_1_1ConvergenceLayer.html#b29bdc8904c89d466dbcd9a841440921" title="Constructor.">ConvergenceLayer</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* classname,
<a name="l00046"></a>00046                      <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classdtn_1_1ConvergenceLayer.html#1030bc8bf5d5ca898fad2433e30e44cf" title="Accessor for the convergence layer name.">name</a>)
<a name="l00047"></a>00047         : <a class="code" href="classoasys_1_1Logger.html">Logger</a>(classname, <span class="stringliteral">"/dtn/cl/%s"</span>, name),
<a name="l00048"></a>00048           <a class="code" href="classdtn_1_1ConvergenceLayer.html#7b90c5a04a629a9235a24a44f8b02663" title="The unique name of this convergence layer.">name_</a>(name)
<a name="l00049"></a>00049     {
<a name="l00050"></a>00050     }
<a name="l00051"></a>00051 
<a name="l00055"></a>00055     <span class="keyword">virtual</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#6fd4f7f6b6393e6bc66bb50670af1c6c" title="Destructor.">~ConvergenceLayer</a>();
<a name="l00056"></a>00056 
<a name="l00060"></a>00060     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#8d7b613e7ef5d4018d0b8fba866559c1" title="Set CL-specific options.">set_cla_parameters</a>(<a class="code" href="namespacedtn.html#e203c4f515b9e88e9e3462100c257314">AttributeVector</a> &amp;params);
<a name="l00061"></a>00061 
<a name="l00065"></a>00065     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#d6b0d283ddd3cbd1e8fd8af2239f1750" title="Set default interface options.">set_interface_defaults</a>(<span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* argv[],
<a name="l00066"></a>00066                                         <span class="keyword">const</span> <span class="keywordtype">char</span>** invalidp);
<a name="l00067"></a>00067     
<a name="l00071"></a>00071     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#f879432d5d270c7c5f533adfbfaf61cf" title="Set default link options.">set_link_defaults</a>(<span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* argv[],
<a name="l00072"></a>00072                                    <span class="keyword">const</span> <span class="keywordtype">char</span>** invalidp);
<a name="l00073"></a>00073     
<a name="l00077"></a>00077     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#0d8005ac771a2200d8b9a1fc46a42c29" title="Bring up a new interface.">interface_up</a>(<a class="code" href="classdtn_1_1Interface.html" title="Abstraction of a local dtn interface.">Interface</a>* iface,
<a name="l00078"></a>00078                               <span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* argv[]);
<a name="l00079"></a>00079 
<a name="l00083"></a>00083     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#1f92c4c8c0fe58e20caa3ed72142f953" title="Bring down the interface.">interface_down</a>(<a class="code" href="classdtn_1_1Interface.html" title="Abstraction of a local dtn interface.">Interface</a>* iface);
<a name="l00084"></a>00084 
<a name="l00088"></a>00088     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#b7e42424ed95b560edcc28d6b45ecf04" title="Dump out CL specific interface information.">dump_interface</a>(<a class="code" href="classdtn_1_1Interface.html" title="Abstraction of a local dtn interface.">Interface</a>* iface, oasys::StringBuffer* <a class="code" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>);
<a name="l00089"></a>00089 
<a name="l00093"></a>00093     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#30f0f04379a82df120a1c1459c049464" title="Create any CL-specific components of the Link.">init_link</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link, <span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* argv[]);
<a name="l00094"></a>00094 
<a name="l00099"></a>00099     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#c25b42069cd41f9f07bebb93205a0426" title="Delete any CL-specific components of the link (requests pertaining to this link must...">delete_link</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link);
<a name="l00100"></a>00100 
<a name="l00104"></a>00104     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#852d2ac184b8701d53d2ae8a04a776df" title="Dump out CL specific link information.">dump_link</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link, oasys::StringBuffer* <a class="code" href="num2sdnv_8c.html#a81cdcc7ff6987bc85c073253e32715f">buf</a>);
<a name="l00105"></a>00105 
<a name="l00109"></a>00109     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#665759ded6a613414b1c8826208b2f5d" title="Post-initialization, parse any CL-specific options for the link.">reconfigure_link</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link,
<a name="l00110"></a>00110                                   <span class="keywordtype">int</span> argc, <span class="keyword">const</span> <span class="keywordtype">char</span>* argv[]);
<a name="l00111"></a>00111 
<a name="l00112"></a>00112     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#665759ded6a613414b1c8826208b2f5d" title="Post-initialization, parse any CL-specific options for the link.">reconfigure_link</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link,
<a name="l00113"></a>00113                                   <a class="code" href="namespacedtn.html#e203c4f515b9e88e9e3462100c257314">AttributeVector</a>&amp; params);
<a name="l00114"></a>00114 
<a name="l00121"></a>00121     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#0bc4483b3956e082a17f79bd9b488780" title="Open a new contact for the given link.">open_contact</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7" title="Typedef for a reference on a contact.">ContactRef</a>&amp; contact) = 0;
<a name="l00122"></a>00122     
<a name="l00134"></a>00134     <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#0667833468ff83fd60b4f96307c26618" title="Close the open contact.">close_contact</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#5f869544c85c75b5a85a14d6e90d7ff7" title="Typedef for a reference on a contact.">ContactRef</a>&amp; contact);
<a name="l00135"></a>00135 
<a name="l00145"></a>00145     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#af13ad57dd3dbab0e5c1e827ef59ab67" title="Notify the convergence layer that a bundle was queued on the link.">bundle_queued</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link, <span class="keyword">const</span> <a class="code" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1" title="Class definition for a Bundle reference.">BundleRef</a>&amp; bundle) = 0;
<a name="l00146"></a>00146     
<a name="l00150"></a>00150     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#d2a7e856ddd378ebcd7a0fe2f566fe9a" title="Try to cancel transmission of a given bundle on the link.">cancel_bundle</a>(<span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link, <span class="keyword">const</span> <a class="code" href="namespacedtn.html#87094f3b26b9f1d469e616d311ae57b1" title="Class definition for a Bundle reference.">BundleRef</a>&amp; bundle);
<a name="l00151"></a>00151     
<a name="l00155"></a>00155     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#6d587dec33bf6ae24717c4a124009c46" title="Report if the given endpoint is reachable via the given interface.">is_eid_reachable</a>(<span class="keyword">const</span> std::string&amp; query_id,
<a name="l00156"></a>00156                                   <a class="code" href="classdtn_1_1Interface.html" title="Abstraction of a local dtn interface.">Interface</a>* iface,
<a name="l00157"></a>00157                                   <span class="keyword">const</span> std::string&amp; <a class="code" href="dtnperf-server_8c.html#6d2d1c31529bee906473fcabaffff34f">endpoint</a>);
<a name="l00158"></a>00158 
<a name="l00162"></a>00162     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#244ce91c50f5aaa13d9460dd887b37c4" title="Report the values of the given link attributes.">query_link_attributes</a>(<span class="keyword">const</span> std::string&amp; query_id,
<a name="l00163"></a>00163                                        <span class="keyword">const</span> <a class="code" href="namespacedtn.html#6efb37e503f8062c537b022eb755b94e" title="Typedef for a reference on a link.">LinkRef</a>&amp; link,
<a name="l00164"></a>00164                                        <span class="keyword">const</span> <a class="code" href="namespacedtn.html#af9ae7e19d5214bb504a600ea79cb9e2">AttributeNameVector</a>&amp; attributes);
<a name="l00165"></a>00165 
<a name="l00169"></a>00169     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#75f748919a650159c42e58d8f039661b" title="Report the values of the given interface attributes.">query_iface_attributes</a>(<span class="keyword">const</span> std::string&amp; query_id,
<a name="l00170"></a>00170                                         <a class="code" href="classdtn_1_1Interface.html" title="Abstraction of a local dtn interface.">Interface</a>* iface,
<a name="l00171"></a>00171                                         <span class="keyword">const</span> <a class="code" href="namespacedtn.html#af9ae7e19d5214bb504a600ea79cb9e2">AttributeNameVector</a>&amp; attributes);
<a name="l00172"></a>00172 
<a name="l00176"></a>00176     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#c833c214503b51dfd401f706eea2da7d" title="Report the values of the convergence layer parameters.">query_cla_parameters</a>(<span class="keyword">const</span> std::string&amp; query_id,
<a name="l00177"></a>00177                                       <span class="keyword">const</span> <a class="code" href="namespacedtn.html#af9ae7e19d5214bb504a600ea79cb9e2">AttributeNameVector</a>&amp; parameters);
<a name="l00178"></a>00178 
<a name="l00182"></a><a class="code" href="classdtn_1_1ConvergenceLayer.html#1e509e221eaa03d9873f938d2baa0f4b">00182</a>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#1e509e221eaa03d9873f938d2baa0f4b" title="Perform any necessary shutdown procedures.">shutdown</a>() { }
<a name="l00183"></a>00183 
<a name="l00188"></a>00188     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#62a69c539ea3bc7229ab6ec631bb5227" title="Boot-time initialization and registration of statically defined convergence layers...">init_clayers</a>();
<a name="l00189"></a>00189     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#60e1fa43ba7c32ddf9e7f13e895d3602">add_clayer</a>(<a class="code" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>* cl);
<a name="l00190"></a>00190     
<a name="l00195"></a>00195     <span class="keyword">static</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html" title="The abstract interface for a convergence layer.">ConvergenceLayer</a>* <a class="code" href="classdtn_1_1ConvergenceLayer.html#6259b19bef1dd17295030b33c44c29d0" title="Find the appropriate convergence layer for the given string.">find_clayer</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* proto);
<a name="l00196"></a>00196 
<a name="l00200"></a>00200     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#359f67804e595204e8436ae853e3aacc" title="Shutdown all registerd convergence layers.">shutdown_clayers</a>();
<a name="l00201"></a>00201 
<a name="l00205"></a><a class="code" href="classdtn_1_1ConvergenceLayer.html#1030bc8bf5d5ca898fad2433e30e44cf">00205</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classdtn_1_1ConvergenceLayer.html#1030bc8bf5d5ca898fad2433e30e44cf" title="Accessor for the convergence layer name.">name</a>() { <span class="keywordflow">return</span> <a class="code" href="classdtn_1_1ConvergenceLayer.html#7b90c5a04a629a9235a24a44f8b02663" title="The unique name of this convergence layer.">name_</a>; }
<a name="l00206"></a>00206     
<a name="l00210"></a><a class="code" href="classdtn_1_1ConvergenceLayer.html#ad24e6696bcaced432991049dbfc40c7">00210</a>     <span class="keyword">static</span> <span class="keyword">const</span> u_int32_t <a class="code" href="classdtn_1_1ConvergenceLayer.html#ad24e6696bcaced432991049dbfc40c7" title="Magic number used for DTN convergence layers.">MAGIC</a> = 0x64746e21; <span class="comment">//'DTN!'</span>
<a name="l00211"></a>00211     
<a name="l00212"></a>00212 <span class="keyword">protected</span>:
<a name="l00216"></a><a class="code" href="classdtn_1_1ConvergenceLayer.html#7b90c5a04a629a9235a24a44f8b02663">00216</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classdtn_1_1ConvergenceLayer.html#7b90c5a04a629a9235a24a44f8b02663" title="The unique name of this convergence layer.">name_</a>;
<a name="l00217"></a>00217 
<a name="l00218"></a>00218 };
<a name="l00219"></a>00219 
<a name="l00224"></a><a class="code" href="classdtn_1_1CLVector.html">00224</a> <span class="keyword">class </span><a class="code" href="classdtn_1_1CLVector.html" title="Use a singleton vector to enumerate the convergence layers that are currently implemented...">CLVector</a> : <span class="keyword">public</span> oasys::Singleton&lt;CLVector&gt;,
<a name="l00225"></a>00225                  <span class="keyword">public</span> std::<a class="code" href="classstd_1_1vector.html">vector</a>&lt;ConvergenceLayer*&gt; {
<a name="l00226"></a>00226 <span class="keyword">public</span>:
<a name="l00227"></a>00227     <span class="keyword">virtual</span> <a class="code" href="classdtn_1_1CLVector.html#ebb1caa32d3cc70e567edb1e03b38034">~CLVector</a>();
<a name="l00228"></a>00228 };
<a name="l00229"></a>00229     
<a name="l00234"></a><a class="code" href="classdtn_1_1CLInfo.html">00234</a> <span class="keyword">class </span><a class="code" href="classdtn_1_1CLInfo.html" title="Abstract base class for convergence layer specific state stored in an interface /...">CLInfo</a> : <span class="keyword">public</span> oasys::SerializableObject {
<a name="l00235"></a>00235 <span class="keyword">public</span>:
<a name="l00236"></a><a class="code" href="classdtn_1_1CLInfo.html#7a6b67e1e37e175a45ec007ffd36f98f">00236</a>     <span class="keyword">virtual</span> <a class="code" href="classdtn_1_1CLInfo.html#7a6b67e1e37e175a45ec007ffd36f98f">~CLInfo</a>() {}
<a name="l00237"></a>00237 
<a name="l00241"></a><a class="code" href="classdtn_1_1CLInfo.html#5aa7a62e1a6ffd94baa3613fcc56e797">00241</a>     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classdtn_1_1CLInfo.html#5aa7a62e1a6ffd94baa3613fcc56e797" title="Virtual from SerializableObject.">serialize</a>( oasys::SerializeAction *) {}
<a name="l00242"></a>00242 };
<a name="l00243"></a>00243 
<a name="l00244"></a>00244 } <span class="comment">// namespace dtn</span>
<a name="l00245"></a>00245 
<a name="l00246"></a>00246 <span class="preprocessor">#endif </span><span class="comment">/* _CONVERGENCE_LAYER_H_ */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Jul 21 14:09:39 2008 for DTN Reference Implementation by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>