<?php

/*
 * This file is part of SwiftMailer.
 * (c) 2009 Fabien Potencier <fabien.potencier@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * Base class for Spools (implements time and message limits).
 * @package Swift
 * @author  Fabien Potencier
 */
abstract class Swift_ConfigurableSpool implements Swift_Spool
{
  /** The maximum number of messages to send per flush */
  private $_message_limit;
  
  /** The time limit per flush */
  private $_time_limit;
  
  /**
   * Sets the maximum number of messages to send per flush.
   * @param int $limit The limit
   */
  public function setMessageLimit($limit)
  {
    $this->_message_limit = (int) $limit;
  }
  
  /**
   * Gets the maximum number of messages to send per flush.
   * @return int The limit
   */
  public function getMessageLimit()
  {
    return $this->_message_limit;
  }
  
  /**
   * Sets the time limit (in seconds) per flush.
   * @param int $limit The limit
   */
  public function setTimeLimit($limit)
  {
    $this->_time_limit = (int) $limit;
  }
  
  /**
   * Gets the time limit (in seconds) per flush.
   * @return int The limit
   */
  public function getTimeLimit()
  {
    return $this->_time_limit;
  }
}
