<?php

/**

 * Copyright (c) 2009 - 2010, RealDolmen

 * All rights reserved.

 *

 * Redistribution and use in source and binary forms, with or without

 * modification, are permitted provided that the following conditions are met:

 *     * Redistributions of source code must retain the above copyright

 *       notice, this list of conditions and the following disclaimer.

 *     * Redistributions in binary form must reproduce the above copyright

 *       notice, this list of conditions and the following disclaimer in the

 *       documentation and/or other materials provided with the distribution.

 *     * Neither the name of RealDolmen nor the

 *       names of its contributors may be used to endorse or promote products

 *       derived from this software without specific prior written permission.

 *

 * THIS SOFTWARE IS PROVIDED BY RealDolmen ''AS IS'' AND ANY

 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED

 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE

 * DISCLAIMED. IN NO EVENT SHALL RealDolmen BE LIABLE FOR ANY

 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES

 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;

 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND

 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS

 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

 *

 * @category   Microsoft

 * @package    Microsoft_WindowsAzure

 * @subpackage Diagnostics

 * @copyright  Copyright (c) 2009 - 2010, RealDolmen (http://www.realdolmen.com)

 * @license    http://phpazure.codeplex.com/license

 * @version    $Id: Storage.php 45989 2010-05-03 12:19:10Z unknown $

 */

if (!defined('W3TC')) {

    die();

}



/**

 * @see Microsoft_WindowsAzure_Diagnostics_Exception

 */

require_once 'Microsoft/WindowsAzure/Diagnostics/Exception.php';



/**

 * @see Microsoft_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract

 */

require_once 'Microsoft/WindowsAzure/Diagnostics/ConfigurationObjectBaseAbstract.php';



/**

 * @see Microsoft_WindowsAzure_Diagnostics_LogLevel

 */

require_once 'Microsoft/WindowsAzure/Diagnostics/LogLevel.php';



/**

 * @category   Microsoft

 * @package    Microsoft_WindowsAzure

 * @subpackage Diagnostics

 * @copyright  Copyright (c) 2009 - 2010, RealDolmen (http://www.realdolmen.com)

 * @license    http://phpazure.codeplex.com/license

 *

 * @property	int		BufferQuotaInMB						Buffer quota in MB

 * @property	int		ScheduledTransferPeriodInMinutes	Scheduled transfer period in minutes

 * @property	string	ScheduledTransferLogLevelFilter		Scheduled transfer log level filter

 * @property	array	Subscriptions						Subscriptions

 */

class Microsoft_WindowsAzure_Diagnostics_ConfigurationWindowsEventLog

	extends Microsoft_WindowsAzure_Diagnostics_ConfigurationObjectBaseAbstract

{

    /**

     * Constructor

     *

	 * @param	int		$bufferQuotaInMB					Buffer quota in MB

	 * @param	int		$scheduledTransferPeriodInMinutes	Scheduled transfer period in minutes

	 * @param	string	$scheduledTransferLogLevelFilter	Scheduled transfer log level filter

	 */

    public function __construct($bufferQuotaInMB = 0, $scheduledTransferPeriodInMinutes = 0, $scheduledTransferLogLevelFilter = Microsoft_WindowsAzure_Diagnostics_LogLevel::UNDEFINED)

    {

        $this->_data = array(

            'bufferquotainmb'        			=> $bufferQuotaInMB,

            'scheduledtransferperiodinminutes' 	=> $scheduledTransferPeriodInMinutes,

            'scheduledtransferloglevelfilter'	=> $scheduledTransferLogLevelFilter,

        	'subscriptions'						=> array()

        );

    }



	/**

	 * Add subscription

	 *

 	 * @param	string	$filter	Event log filter

	 */

    public function addSubscription($filter)

    {

    	$this->_data['subscriptions'][$filter] = $filter;

    }



	/**

	 * Remove subscription

	 *

 	 * @param	string	$filter	Event log filter

	 */

    public function removeSubscription($filter)

    {

    	if (isset($this->_data['subscriptions'][$filter])) {

    		unset($this->_data['subscriptions'][$filter]);

    	}

    }

}