Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > 5fc82cd2dfd40b1b8acca39dd2860281 > files > 53

log4cpp-1.0-4.fc12.i686.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>log4cpp: FactoryParams.hh 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.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</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>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
    </ul>
  </div>
<h1>FactoryParams.hh</h1><a href="FactoryParams_8hh.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#if !defined(h_3e645482_ae6a_43e5_8f81_abbc4200212d)</span>
<a name="l00002"></a><a class="code" href="FactoryParams_8hh.html#3d900b24615a8b2a6174618018213445">00002</a> <span class="preprocessor"></span><span class="preprocessor">#define h_3e645482_ae6a_43e5_8f81_abbc4200212d</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;map&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;string&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;sstream&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
<a name="l00008"></a>00008 <span class="preprocessor">#include "<a class="code" href="Portability_8hh.html">Portability.hh</a>"</span>
<a name="l00009"></a>00009 
<a name="l00010"></a>00010 <span class="keyword">namespace </span>log4cpp
<a name="l00011"></a>00011 {
<a name="l00012"></a>00012    <span class="keyword">class </span>FactoryParams;
<a name="l00013"></a><a class="code" href="namespacelog4cpp_1_1details.html">00013</a>    <span class="keyword">namespace </span>details
<a name="l00014"></a>00014    {
<a name="l00015"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">00015</a>       <span class="keyword">class </span><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">base_validator_data</a>
<a name="l00016"></a>00016       {
<a name="l00017"></a>00017          <span class="keyword">public</span>:
<a name="l00018"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#87c54f9ca5bd6014dec39efb1cdfdca4">00018</a>             <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#87c54f9ca5bd6014dec39efb1cdfdca4">base_validator_data</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1FactoryParams.html">FactoryParams</a>* params) : <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">tag_</a>(tag), <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>(params){}
<a name="l00019"></a>00019 
<a name="l00020"></a>00020          <span class="keyword">protected</span>:
<a name="l00021"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">00021</a>             <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">tag_</a>;
<a name="l00022"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">00022</a>             <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1FactoryParams.html">FactoryParams</a>* <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>;
<a name="l00023"></a>00023 
<a name="l00024"></a>00024             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00025"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#9ee083a7ef2a4a31766d2222c6e35d38">00025</a>             <span class="keywordtype">void</span> <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#9ee083a7ef2a4a31766d2222c6e35d38">assign</a>(<span class="keyword">const</span> std::string&amp; param_value, T&amp; value)<span class="keyword"> const</span>
<a name="l00026"></a>00026 <span class="keyword">            </span>{
<a name="l00027"></a>00027                <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#28f9036c5279fb54ae06dec6a2947b4e">assign_impl</a>(param_value, value);
<a name="l00028"></a>00028             }
<a name="l00029"></a>00029 
<a name="l00030"></a>00030             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00031"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#28f9036c5279fb54ae06dec6a2947b4e">00031</a>             <span class="keywordtype">void</span> <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#28f9036c5279fb54ae06dec6a2947b4e">assign_impl</a>(<span class="keyword">const</span> std::string&amp; param_value, T&amp; value)<span class="keyword"> const</span>
<a name="l00032"></a>00032 <span class="keyword">            </span>{
<a name="l00033"></a>00033                std::stringstream s;
<a name="l00034"></a>00034                s &lt;&lt; param_value;
<a name="l00035"></a>00035                s &gt;&gt; value;
<a name="l00036"></a>00036             }
<a name="l00037"></a>00037 
<a name="l00038"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#cd622b4170ea6a9753892ed438a9ef1e">00038</a>             <span class="keywordtype">void</span> <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#28f9036c5279fb54ae06dec6a2947b4e">assign_impl</a>(<span class="keyword">const</span> std::string&amp; param_value, std::string&amp; value)<span class="keyword"> const</span>
<a name="l00039"></a>00039 <span class="keyword">            </span>{
<a name="l00040"></a>00040                value = param_value;
<a name="l00041"></a>00041             }
<a name="l00042"></a>00042 
<a name="l00043"></a><a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#fa3910f3457be7e298f45edce268f6a1">00043</a>             <span class="keywordtype">void</span> <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#fa3910f3457be7e298f45edce268f6a1">throw_error</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param_name)<span class="keyword"> const</span>
<a name="l00044"></a>00044 <span class="keyword">            </span>{
<a name="l00045"></a>00045                std::stringstream s;
<a name="l00046"></a>00046                s &lt;&lt; <span class="stringliteral">"Property '"</span> &lt;&lt; param_name &lt;&lt; <span class="stringliteral">"' required to configure "</span> &lt;&lt; <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">tag_</a>;
<a name="l00047"></a>00047                <span class="keywordflow">throw</span> std::runtime_error(s.str());
<a name="l00048"></a>00048             }
<a name="l00049"></a>00049       };
<a name="l00050"></a>00050 
<a name="l00051"></a>00051       <span class="keyword">class </span>optional_params_validator;
<a name="l00052"></a><a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">00052</a>       <span class="keyword">class </span><a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">required_params_validator</a> : <span class="keyword">public</span> <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">base_validator_data</a>
<a name="l00053"></a>00053       {
<a name="l00054"></a>00054          <span class="keyword">public</span>:
<a name="l00055"></a><a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#148de98a7509bee58eeb402284c273e3">00055</a>             <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#148de98a7509bee58eeb402284c273e3">required_params_validator</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1FactoryParams.html">FactoryParams</a>* params) : <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">base_validator_data</a>(tag, params) {}
<a name="l00056"></a>00056 
<a name="l00057"></a>00057             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00058"></a>00058             <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a> <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#bf1550e0f74d61f4741f26086fe51a50">optional</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value) <span class="keyword">const</span>;
<a name="l00059"></a>00059             
<a name="l00060"></a>00060             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00061"></a>00061             <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">required_params_validator</a>&amp; <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#f25825fd0c51920665e4dda135a4b49e">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value) <span class="keyword">const</span>;
<a name="l00062"></a>00062       };
<a name="l00063"></a>00063       
<a name="l00064"></a><a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">00064</a>       <span class="keyword">class </span><a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a> : <span class="keyword">public</span> <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">base_validator_data</a>
<a name="l00065"></a>00065       {
<a name="l00066"></a>00066          <span class="keyword">public</span>:
<a name="l00067"></a><a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html#f9f93bfef249fd97c7498f7bb593dfed">00067</a>             <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html#f9f93bfef249fd97c7498f7bb593dfed">optional_params_validator</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1FactoryParams.html">FactoryParams</a>* params) : <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">base_validator_data</a>(tag, params) {}
<a name="l00068"></a>00068 
<a name="l00069"></a>00069             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00070"></a><a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html#b6a1fee2db07f2a4d88707fb1e016a8b">00070</a>             <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">required_params_validator</a> <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html#b6a1fee2db07f2a4d88707fb1e016a8b">required</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value)<span class="keyword"> const </span>{ <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">required_params_validator</a> v(<a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">tag_</a>, <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>); v(param, value); <span class="keywordflow">return</span> v; }
<a name="l00071"></a>00071 
<a name="l00072"></a>00072             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00073"></a>00073             <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a>&amp; <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html#46379afcfc83beea273e809e6c031360">operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value) <span class="keyword">const</span>;
<a name="l00074"></a>00074       };
<a name="l00075"></a>00075 
<a name="l00076"></a>00076       <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00077"></a><a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#bf1550e0f74d61f4741f26086fe51a50">00077</a>       <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a> <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#bf1550e0f74d61f4741f26086fe51a50">required_params_validator::optional</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value)<span class="keyword"> const </span>{ <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a> v(<a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">tag_</a>, <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>); v(param, value); <span class="keywordflow">return</span> v; }
<a name="l00078"></a>00078 
<a name="l00079"></a><a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html">00079</a>       <span class="keyword">class </span><a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html">parameter_validator</a> : <span class="keyword">public</span> <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">base_validator_data</a>
<a name="l00080"></a>00080       {
<a name="l00081"></a>00081          <span class="keyword">public</span>:
<a name="l00082"></a><a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html#de6af12357e5d484b2a071f163076554">00082</a>             <a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html#de6af12357e5d484b2a071f163076554">parameter_validator</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* tag, <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1FactoryParams.html">FactoryParams</a>* params) : <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html">base_validator_data</a>(tag, params) {}
<a name="l00083"></a>00083 
<a name="l00084"></a>00084             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00085"></a><a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html#9d5b773f1acbe95ed1c0853ad8fe2e65">00085</a>             <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">required_params_validator</a> <a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html#9d5b773f1acbe95ed1c0853ad8fe2e65">required</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value)<span class="keyword"> const </span>{ <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">required_params_validator</a> v(<a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">tag_</a>, <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>); v(param, value); <span class="keywordflow">return</span> v; }
<a name="l00086"></a>00086 
<a name="l00087"></a>00087             <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00088"></a><a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html#49aae39dc935852d7197494e4feae5ef">00088</a>             <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a> <a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html#49aae39dc935852d7197494e4feae5ef">optional</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value)<span class="keyword"> const </span>{ <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a> v(<a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#90f32a01152775802903b5ac3d074feb">tag_</a>, <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>); v(param, value); <span class="keywordflow">return</span> v; }
<a name="l00089"></a>00089       };
<a name="l00090"></a>00090    }
<a name="l00091"></a>00091 
<a name="l00092"></a><a class="code" href="classlog4cpp_1_1FactoryParams.html">00092</a>    <span class="keyword">class </span><a class="code" href="Export_8hh.html#30f9ff9641fa394781f52398a8312437">LOG4CPP_EXPORT</a> <a class="code" href="classlog4cpp_1_1FactoryParams.html">FactoryParams</a>
<a name="l00093"></a>00093    {
<a name="l00094"></a>00094          <span class="keyword">typedef</span> std::map&lt;std::string, std::string&gt; storage_t;
<a name="l00095"></a>00095                  
<a name="l00096"></a>00096                                  storage_t storage_;
<a name="l00097"></a>00097       
<a name="l00098"></a>00098       <span class="keyword">public</span>:
<a name="l00099"></a><a class="code" href="classlog4cpp_1_1FactoryParams.html#b069f4d7d659fb4e74f4f9fc342c5491">00099</a>          <span class="keyword">typedef</span> storage_t::const_iterator const_iterator;
<a name="l00100"></a>00100 
<a name="l00101"></a>00101          <span class="keyword">const</span> std::string&amp; operator[](<span class="keyword">const</span> std::string&amp; v) <span class="keyword">const</span>;
<a name="l00102"></a><a class="code" href="classlog4cpp_1_1FactoryParams.html#905bd46906c2a0cb8c3ae661eab8b33d">00102</a>          std::string&amp; <a class="code" href="classlog4cpp_1_1FactoryParams.html#905bd46906c2a0cb8c3ae661eab8b33d">operator[]</a>(<span class="keyword">const</span> std::string&amp; v) { <span class="keywordflow">return</span> storage_[v]; }
<a name="l00103"></a><a class="code" href="classlog4cpp_1_1FactoryParams.html#9015b9f59d19aa1d2aabb6e289ae12e0">00103</a>          <a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html">details::parameter_validator</a> <a class="code" href="classlog4cpp_1_1FactoryParams.html#9015b9f59d19aa1d2aabb6e289ae12e0">get_for</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* tag)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classlog4cpp_1_1details_1_1parameter__validator.html">details::parameter_validator</a>(tag, <span class="keyword">this</span>); }
<a name="l00104"></a>00104          const_iterator find(<span class="keyword">const</span> std::string&amp; t) <span class="keyword">const</span>;
<a name="l00105"></a><a class="code" href="classlog4cpp_1_1FactoryParams.html#3610ac9f46702bda59699ae1bffef044">00105</a>          const_iterator <a class="code" href="classlog4cpp_1_1FactoryParams.html#3610ac9f46702bda59699ae1bffef044">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> storage_.begin(); }
<a name="l00106"></a><a class="code" href="classlog4cpp_1_1FactoryParams.html#92bf77050978636592ce0aed54fa79c0">00106</a>          const_iterator <a class="code" href="classlog4cpp_1_1FactoryParams.html#92bf77050978636592ce0aed54fa79c0">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> storage_.end(); }
<a name="l00107"></a>00107 
<a name="l00108"></a>00108       <span class="keyword">private</span>:
<a name="l00109"></a>00109          <span class="comment">/*typedef std::map&lt;std::string, std::string&gt; storage_t;</span>
<a name="l00110"></a>00110 <span class="comment"></span>
<a name="l00111"></a>00111 <span class="comment">         storage_t storage_; */</span>
<a name="l00112"></a>00112    };
<a name="l00113"></a>00113 
<a name="l00114"></a>00114    <span class="keyword">namespace </span>details
<a name="l00115"></a>00115    {
<a name="l00116"></a>00116       <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00117"></a><a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#f25825fd0c51920665e4dda135a4b49e">00117</a>       <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html">required_params_validator</a>&amp; <a class="code" href="classlog4cpp_1_1details_1_1required__params__validator.html#f25825fd0c51920665e4dda135a4b49e">required_params_validator::operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value)<span class="keyword"> const</span>
<a name="l00118"></a>00118 <span class="keyword">      </span>{
<a name="l00119"></a>00119          <a class="code" href="classlog4cpp_1_1FactoryParams.html#b069f4d7d659fb4e74f4f9fc342c5491">FactoryParams::const_iterator</a> i = <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>-&gt;<a class="code" href="classlog4cpp_1_1FactoryParams.html#8af51931be69524aa4c277596380f2c1">find</a>(param);
<a name="l00120"></a>00120          <span class="keywordflow">if</span> (i != <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>-&gt;<a class="code" href="classlog4cpp_1_1FactoryParams.html#92bf77050978636592ce0aed54fa79c0">end</a>())
<a name="l00121"></a>00121             <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#9ee083a7ef2a4a31766d2222c6e35d38">assign</a>(i-&gt;second, value);
<a name="l00122"></a>00122          <span class="keywordflow">else</span>
<a name="l00123"></a>00123             <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#fa3910f3457be7e298f45edce268f6a1">throw_error</a>(param);
<a name="l00124"></a>00124 
<a name="l00125"></a>00125          <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00126"></a>00126       }
<a name="l00127"></a>00127       
<a name="l00128"></a>00128       <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;
<a name="l00129"></a><a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html#46379afcfc83beea273e809e6c031360">00129</a>       <span class="keyword">const</span> <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html">optional_params_validator</a>&amp; <a class="code" href="classlog4cpp_1_1details_1_1optional__params__validator.html#46379afcfc83beea273e809e6c031360">optional_params_validator::operator()</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* param, T&amp; value)<span class="keyword"> const</span>
<a name="l00130"></a>00130 <span class="keyword">      </span>{
<a name="l00131"></a>00131          <a class="code" href="classlog4cpp_1_1FactoryParams.html#b069f4d7d659fb4e74f4f9fc342c5491">FactoryParams::const_iterator</a> i = <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>-&gt;<a class="code" href="classlog4cpp_1_1FactoryParams.html#8af51931be69524aa4c277596380f2c1">find</a>(param);
<a name="l00132"></a>00132          <span class="keywordflow">if</span> (i != <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#53f33e20757034d302ac568b787b4c27">params_</a>-&gt;<a class="code" href="classlog4cpp_1_1FactoryParams.html#92bf77050978636592ce0aed54fa79c0">end</a>())
<a name="l00133"></a>00133             <a class="code" href="classlog4cpp_1_1details_1_1base__validator__data.html#9ee083a7ef2a4a31766d2222c6e35d38">assign</a>(i-&gt;second, value);
<a name="l00134"></a>00134 
<a name="l00135"></a>00135          <span class="keywordflow">return</span> *<span class="keyword">this</span>;
<a name="l00136"></a>00136       }
<a name="l00137"></a>00137    }
<a name="l00138"></a>00138 }
<a name="l00139"></a>00139 
<a name="l00140"></a>00140 <span class="preprocessor">#endif // h_3e645482_ae6a_43e5_8f81_abbc4200212d</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Jul 26 19:34:50 2009 for log4cpp by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>