blob: 0785935348c4a8f64ce7aaec5e0c1b5b6ba3b03c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Apache log4cxx: LocationInfo Class Reference</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.4.6 -->
<div class="tabs">
<ul>
<li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li id="current"><a href="classes.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
<li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
<li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
</ul></div>
<div class="nav">
<a class="el" href="namespacelog4cxx.html">log4cxx</a>::<a class="el" href="namespacelog4cxx_1_1spi.html">spi</a>::<a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a></div>
<h1>LocationInfo Class Reference</h1><!-- doxytag: class="log4cxx::spi::LocationInfo" --><a href="classlog4cxx_1_1spi_1_1_location_info-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
This class represents the location of a logging statement.
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#8bc4d9e60ee9a3440b769a30280731db">LocationInfo</a> (const char *const fileName, const char *const functionName, int lineNumber)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor. <a href="#8bc4d9e60ee9a3440b769a30280731db"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#d0658f719e32dcf0b98b329799b5bb9d">LocationInfo</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor. <a href="#d0658f719e32dcf0b98b329799b5bb9d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#4c66f29df8b294b0d8cc432ca9238130">LocationInfo</a> (const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> &amp;src)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy constructor. <a href="#4c66f29df8b294b0d8cc432ca9238130"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#f1cd8347aa2cea39e2555df26a2da438">operator=</a> (const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> &amp;src)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Assignment operator. <a href="#f1cd8347aa2cea39e2555df26a2da438"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#c8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets location info to default state. <a href="#c8bb3912a3ce86b15842e79d0b421204"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#b3d0dbc103a6e0a790b4950cca23cdd7">getClassName</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the class name of the call site. <a href="#b3d0dbc103a6e0a790b4950cca23cdd7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#09ee81e40060d94bf70d03532fb7adb3">getFileName</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the file name of the caller. <a href="#09ee81e40060d94bf70d03532fb7adb3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#e48a165945bebe01fd777069441e614e">getLineNumber</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the line number of the caller. <a href="#e48a165945bebe01fd777069441e614e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const std::string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#73895866ce26c7a41b995a17c94aa54c">getMethodName</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the method name of the caller. <a href="#73895866ce26c7a41b995a17c94aa54c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#55c2de2e6f1f6297ab7e8244404bc1d5">write</a> (<a class="el" href="classlog4cxx_1_1helpers_1_1_object_output_stream.html">log4cxx::helpers::ObjectOutputStream</a> &amp;os, <a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;p) const </td></tr>
<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#9f7f7bf077e6098f76feb162945d0e11">getLocationUnavailable</a> ()</td></tr>
<tr><td colspan="2"><br><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *const&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#9f0cc24df533ad326fa4821f469821d7">NA</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">When location information is not available the constant <code>NA</code> is returned. <a href="#9f0cc24df533ad326fa4821f469821d7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *const&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#84df6e0ea4e31ddae6164c3e72ebc2a1">NA_METHOD</a></td></tr>
</table>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="8bc4d9e60ee9a3440b769a30280731db"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::LocationInfo" ref="8bc4d9e60ee9a3440b769a30280731db" args="(const char *const fileName, const char *const functionName, int lineNumber)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const char *const &nbsp;</td>
<td class="mdname" nowrap> <em>fileName</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>const char *const &nbsp;</td>
<td class="mdname" nowrap> <em>functionName</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>int&nbsp;</td>
<td class="mdname" nowrap> <em>lineNumber</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Constructor.
<p>
<dl compact><dt><b>Remarks:</b></dt><dd>Used by LOG4CXX_LOCATION to generate location info for current code site </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="d0658f719e32dcf0b98b329799b5bb9d"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::LocationInfo" ref="d0658f719e32dcf0b98b329799b5bb9d" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Default constructor.
<p>
</td>
</tr>
</table>
<a class="anchor" name="4c66f29df8b294b0d8cc432ca9238130"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::LocationInfo" ref="4c66f29df8b294b0d8cc432ca9238130" args="(const LocationInfo &amp;src)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>src</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Copy constructor.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>source location </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="c8bb3912a3ce86b15842e79d0b421204"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::clear" ref="c8bb3912a3ce86b15842e79d0b421204" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void clear </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Resets location info to default state.
<p>
</td>
</tr>
</table>
<a class="anchor" name="b3d0dbc103a6e0a790b4950cca23cdd7"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::getClassName" ref="b3d0dbc103a6e0a790b4950cca23cdd7" args="() const " --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">const std::string getClassName </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Return the class name of the call site.
<p>
</td>
</tr>
</table>
<a class="anchor" name="09ee81e40060d94bf70d03532fb7adb3"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::getFileName" ref="09ee81e40060d94bf70d03532fb7adb3" args="() const " --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">const char* getFileName </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Return the file name of the caller.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>file name, may be null. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="e48a165945bebe01fd777069441e614e"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::getLineNumber" ref="e48a165945bebe01fd777069441e614e" args="() const " --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">int getLineNumber </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns the line number of the caller.
<p>
<dl compact><dt><b>Returns:</b></dt><dd>line number, -1 if not available. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="9f7f7bf077e6098f76feb162945d0e11"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::getLocationUnavailable" ref="9f7f7bf077e6098f76feb162945d0e11" args="()" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">static const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a>&amp; getLocationUnavailable </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap><code> [static]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<a class="anchor" name="73895866ce26c7a41b995a17c94aa54c"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::getMethodName" ref="73895866ce26c7a41b995a17c94aa54c" args="() const " --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">const std::string getMethodName </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="mdname1" valign="top" nowrap> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Returns the method name of the caller.
<p>
</td>
</tr>
</table>
<a class="anchor" name="f1cd8347aa2cea39e2555df26a2da438"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::operator=" ref="f1cd8347aa2cea39e2555df26a2da438" args="(const LocationInfo &amp;src)" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a>&amp; operator= </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top">const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html">LocationInfo</a> &amp;&nbsp;</td>
<td class="mdname1" valign="top" nowrap> <em>src</em> </td>
<td class="md" valign="top">&nbsp;)&nbsp;</td>
<td class="md" nowrap></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
Assignment operator.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>source location </td></tr>
</table>
</dl>
</td>
</tr>
</table>
<a class="anchor" name="55c2de2e6f1f6297ab7e8244404bc1d5"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::write" ref="55c2de2e6f1f6297ab7e8244404bc1d5" args="(log4cxx::helpers::ObjectOutputStream &amp;os, log4cxx::helpers::Pool &amp;p) const " --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">void write </td>
<td class="md" valign="top">(&nbsp;</td>
<td class="md" nowrap valign="top"><a class="el" href="classlog4cxx_1_1helpers_1_1_object_output_stream.html">log4cxx::helpers::ObjectOutputStream</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>os</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap><a class="el" href="classlog4cxx_1_1helpers_1_1_pool.html">log4cxx::helpers::Pool</a> &amp;&nbsp;</td>
<td class="mdname" nowrap> <em>p</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">)&nbsp;</td>
<td class="md" colspan="2"> const</td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="9f0cc24df533ad326fa4821f469821d7"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::NA" ref="9f0cc24df533ad326fa4821f469821d7" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">const char* const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#9f0cc24df533ad326fa4821f469821d7">NA</a><code> [static]</code> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
When location information is not available the constant <code>NA</code> is returned.
<p>
Current value of this string constant is <b>?</b>. </td>
</tr>
</table>
<a class="anchor" name="84df6e0ea4e31ddae6164c3e72ebc2a1"></a><!-- doxytag: member="log4cxx::spi::LocationInfo::NA_METHOD" ref="84df6e0ea4e31ddae6164c3e72ebc2a1" args="" --><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" nowrap valign="top">const char* const <a class="el" href="classlog4cxx_1_1spi_1_1_location_info.html#84df6e0ea4e31ddae6164c3e72ebc2a1">NA_METHOD</a><code> [static]</code> </td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
&nbsp;
</td>
<td>
<p>
</td>
</tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="locationinfo_8h.html">locationinfo.h</a></ul>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
</BODY>
</HTML>