<?xml version="1.0" encoding="iso-8859-1"?>
<!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>
			<!-- template designed by Marco Von Ballmoos  -->
			<title>Docs For Class LoggerAppenderPool</title>
			<link rel="stylesheet" href="../media/stylesheet.css" />
						<script src="../media/lib/classTree.js"></script>
												<script language="javascript" type="text/javascript">
				var imgPlus = new Image();
				var imgMinus = new Image();
				imgPlus.src = "../media/images/plus.png";
				imgMinus.src = "../media/images/minus.png";
				
				function showNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgMinus.src;
					oTable.style.display = "block";
				}
				
				function hideNode(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
							var oImg = document.layers["img" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
							var oImg = document.all["img" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
							var oImg = document.getElementById("img" + Node);
									break;
							}
					oImg.src = imgPlus.src;
					oTable.style.display = "none";
				}
				
				function nodeIsVisible(Node){
							switch(navigator.family){
								case 'nn4':
									// Nav 4.x code fork...
							var oTable = document.layers["span" + Node];
									break;
								case 'ie4':
									// IE 4/5 code fork...
							var oTable = document.all["span" + Node];
									break;
								case 'gecko':
									// Standards Compliant code fork...
							var oTable = document.getElementById("span" + Node);
									break;
							}
					return (oTable && oTable.style.display == "block");
				}
				
				function toggleNodeVisibility(Node){
					if (nodeIsVisible(Node)){
						hideNode(Node);
					}else{
						showNode(Node);
					}
				}
			</script>
					</head>
		<body>
			<div class="page-body">			
<h2 class="class-name">Class LoggerAppenderPool</h2>

<a name="sec-description"></a>
<div class="info-box">
	<div class="info-box-title">Description</div>
	<div class="nav-bar">
					<span class="disabled">Description</span> |
													<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
						|											<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
						
					</div>
	<div class="info-box-body">
        		<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Pool implmentation for LoggerAppender instances.</p>
<p class="description"><p>The pool is used when configuring log4php. First all appender instances  are created in the pool. Afterward, they are linked to loggers, each  appender can be linked to multiple loggers. This makes sure duplicate  appenders are not created.</p></p>
	<ul class="tags">
				<li><span class="field">version:</span> $Revision: 795727 $</li>
			</ul>
		<p class="notes">
			Located in <a class="field" href="_LoggerAppenderPool.php.html">/LoggerAppenderPool.php</a> (line <span class="field">32</span>)
		</p>
		
				
		<pre></pre>
	
			</div>
</div>



	<a name="sec-var-summary"></a>
	<div class="info-box">
		<div class="info-box-title">Variable Summary</span></div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
						<span class="disabled">Vars</span> (<a href="#sec-vars">details</a>)
							| 
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
							
								</div>
		<div class="info-box-body">
			<div class="var-summary">
												<div class="var-title">
					static <span class="var-type">mixed</span>
					<a href="#$appenders" title="details" class="var-name">$appenders</a>
				</div>
																							</div>
		</div>
	</div>

	<a name="sec-method-summary"></a>
	<div class="info-box">
		<div class="info-box-title">Method Summary</span></div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
																		<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
				 
				|
						<span class="disabled">Methods</span> (<a href="#sec-methods">details</a>)
		</div>
		<div class="info-box-body">			
			<div class="method-summary">
										
				<div class="method-definition">
					static 						<span class="method-result">void</span>
										<a href="#add" title="details" class="method-name">add</a>
											(<span class="var-type"><a href="../log4php/LoggerAppender.html">LoggerAppender</a></span>&nbsp;<span class="var-name">$appender</span>)
									</div>
														
				<div class="method-definition">
					static 						<span class="method-result">void</span>
										<a href="#clear" title="details" class="method-name">clear</a>
										()
									</div>
														
				<div class="method-definition">
					static 						<span class="method-result">void</span>
										<a href="#delete" title="details" class="method-name">delete</a>
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>)
									</div>
														
				<div class="method-definition">
					static 						<span class="method-result">boolean</span>
										<a href="#exists" title="details" class="method-name">exists</a>
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>)
									</div>
														
				<div class="method-definition">
					static 						<span class="method-result"><a href="../log4php/LoggerAppender.html">LoggerAppender</a></span>
										<a href="#get" title="details" class="method-name">get</a>
											(<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>)
									</div>
														
				<div class="method-definition">
					static 						<span class="method-result">array</span>
										<a href="#getAppenders" title="details" class="method-name">getAppenders</a>
										()
									</div>
																																																															</div>
		</div>
	</div>		

	<a name="sec-vars"></a>
	<div class="info-box">
		<div class="info-box-title">Variables</div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
										<a href="#sec-var-summary">Vars</a> (<span class="disabled">details</span>)
						
			
										| 
									<a href="#sec-method-summary">Methods</a> (<a href="#sec-methods">details</a>)
							
					</div>
		<div class="info-box-body">
			<a name="var$appenders" id="$appenders"><!-- --></A>
<div class="oddrow">

	<div class="var-header">
		<span class="var-title">
			static <span class="var-type">mixed</span>
			<span class="var-name">$appenders</span>
			 = <span class="var-default">array()</span>			(line <span class="line-number">35</span>)
		</span>
	</div>

	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Holds appenders indexed by their name</p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	
		
		

</div>
						
		</div>
	</div>
	
	<a name="sec-methods"></a>
	<div class="info-box">
		<div class="info-box-title">Methods</div>
		<div class="nav-bar">
			<a href="#sec-description">Description</a> |
															<a href="#sec-var-summary">Vars</a> (<a href="#sec-vars">details</a>)
																	<a href="#sec-method-summary">Methods</a> (<span class="disabled">details</span>)
						
		</div>
		<div class="info-box-body">
			<A NAME='method_detail'></A>
<a name="methodadd" id="add"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">static add</span> (line <span class="line-number">42</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Adds an appender to the pool.</p>
<p class="description"><p>The appender must be named for this operation.</p></p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		static <span class="method-result">void</span>
		<span class="method-name">
			add
		</span>
					(<span class="var-type"><a href="../log4php/LoggerAppender.html">LoggerAppender</a></span>&nbsp;<span class="var-name">$appender</span>)
			</div>
	
			<ul class="parameters">
					<li>
				<span class="var-type"><a href="../log4php/LoggerAppender.html">LoggerAppender</a></span>
				<span class="var-name">$appender</span>			</li>
				</ul>
		
			
	</div>
<a name="methodclear" id="clear"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">static clear</span> (line <span class="line-number">96</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Clears all appenders from the pool.</p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		static <span class="method-result">void</span>
		<span class="method-name">
			clear
		</span>
				()
			</div>
	
		
			
	</div>
<a name="methoddelete" id="delete"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">static delete</span> (line <span class="line-number">72</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Removes an appender from the pool by name.</p>
	<ul class="tags">
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		static <span class="method-result">void</span>
		<span class="method-name">
			delete
		</span>
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>)
			</div>
	
			<ul class="parameters">
					<li>
				<span class="var-type">string</span>
				<span class="var-name">$name</span><span class="var-description">: Name of the appender to remove.</span>			</li>
				</ul>
		
			
	</div>
<a name="methodexists" id="exists"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">static exists</span> (line <span class="line-number">89</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Checks whether an appender exists in the pool.</p>
	<ul class="tags">
				<li><span class="field">return:</span> TRUE if the appender with the given name exists.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		static <span class="method-result">boolean</span>
		<span class="method-name">
			exists
		</span>
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>)
			</div>
	
			<ul class="parameters">
					<li>
				<span class="var-type">string</span>
				<span class="var-name">$name</span><span class="var-description">: Name of the appender to look for.</span>			</li>
				</ul>
		
			
	</div>
<a name="methodget" id="get"><!-- --></a>
<div class="evenrow">
	
	<div class="method-header">
		<span class="method-title">static get</span> (line <span class="line-number">64</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Retrieves an appender from the pool by name.</p>
	<ul class="tags">
				<li><span class="field">return:</span> The named appender or NULL if no such appender   exists in the pool.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		static <span class="method-result"><a href="../log4php/LoggerAppender.html">LoggerAppender</a></span>
		<span class="method-name">
			get
		</span>
					(<span class="var-type">string</span>&nbsp;<span class="var-name">$name</span>)
			</div>
	
			<ul class="parameters">
					<li>
				<span class="var-type">string</span>
				<span class="var-name">$name</span><span class="var-description">: Name of the appender to retrieve.</span>			</li>
				</ul>
		
			
	</div>
<a name="methodgetAppenders" id="getAppenders"><!-- --></a>
<div class="oddrow">
	
	<div class="method-header">
		<span class="method-title">static getAppenders</span> (line <span class="line-number">80</span>)
	</div> 
	
	<!-- ========== Info from phpDoc block ========= -->
<p class="short-description">Returns all appenders from the pool.</p>
	<ul class="tags">
				<li><span class="field">return:</span> Array of LoggerAppender objects.</li>
				<li><span class="field">access:</span> public</li>
			</ul>
	
	<div class="method-signature">
		static <span class="method-result">array</span>
		<span class="method-name">
			getAppenders
		</span>
				()
			</div>
	
		
			
	</div>
						
		</div>
	</div>


	<p class="notes" id="credit">
		Documentation generated on Sat, 18 Feb 2012 22:32:23 +0000 by <a href="http://www.phpdoc.org" target="_blank">phpDocumentor 1.4.3</a>
	</p>
	</div></body>
</html>