* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ /** * Stores Messages in memory. * @package Swift * @author Fabien Potencier */ class Swift_MemorySpool implements Swift_Spool { protected $messages = array(); /** * Tests if this Transport mechanism has started. * @return boolean */ public function isStarted() { return true; } /** * Starts this Transport mechanism. */ public function start() { } /** * Stops this Transport mechanism. */ public function stop() { } /** * Stores a message in the queue. * * @param Swift_Mime_Message $message The message to store * * @return boolean Whether the operation has succeeded */ public function queueMessage(Swift_Mime_Message $message) { $this->messages[] = $message; return true; } /** * Sends messages using the given transport instance. * * @param Swift_Transport $transport A transport instance * @param string[] &$failedRecipients An array of failures by-reference * * @return int The number of sent emails */ public function flushQueue(Swift_Transport $transport, &$failedRecipients = null) { if (!$this->messages) { return 0; } if (!$transport->isStarted()) { $transport->start(); } $count = 0; while ($message = array_pop($this->messages)) { $count += $transport->send($message, $failedRecipients); } return $count; } }