aboutsummaryrefslogtreecommitdiff
path: root/h-source/External/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php
diff options
context:
space:
mode:
authorYuchen Pei <hi@ypei.me>2021-10-14 15:16:42 +1100
committerYuchen Pei <hi@ypei.me>2021-10-14 15:16:42 +1100
commit07f5140771388c9e0c8a99b0dd2e5d950bdb173b (patch)
tree323c00faef1edc7dea2e88ff581cc2258b2b6432 /h-source/External/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php
parente119be145500700f3c465e12664403a07530a421 (diff)
moving h-source subdir out.
Diffstat (limited to 'h-source/External/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php')
-rwxr-xr-xh-source/External/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php188
1 files changed, 0 insertions, 188 deletions
diff --git a/h-source/External/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php b/h-source/External/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php
deleted file mode 100755
index 367981b..0000000
--- a/h-source/External/swiftmailer/lib/classes/Swift/Transport/LoadBalancedTransport.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-/*
- * This file is part of SwiftMailer.
- * (c) 2004-2009 Chris Corbyn
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-//@require 'Swift/Transport.php';
-//@require 'Swift/Mime/Message.php';
-//@require 'Swift/Events/EventListener.php';
-
-/**
- * Redudantly and rotationally uses several Transports when sending.
- *
- * @package Swift
- * @subpackage Transport
- * @author Chris Corbyn
- */
-class Swift_Transport_LoadBalancedTransport implements Swift_Transport
-{
-
- /** Transports which are deemed useless */
- private $_deadTransports = array();
-
- /**
- * The Transports which are used in rotation.
- *
- * @var array Swift_Transport
- * @access protected
- */
- protected $_transports = array();
-
- /**
- * Creates a new LoadBalancedTransport.
- */
- public function __construct()
- {
- }
-
- /**
- * Set $transports to delegate to.
- *
- * @param array $transports Swift_Transport
- */
- public function setTransports(array $transports)
- {
- $this->_transports = $transports;
- $this->_deadTransports = array();
- }
-
- /**
- * Get $transports to delegate to.
- *
- * @return array Swift_Transport
- */
- public function getTransports(array $transports)
- {
- return array_merge($this->_transports, $this->_deadTransports);
- }
-
- /**
- * Test if this Transport mechanism has started.
- *
- * @return boolean
- */
- public function isStarted()
- {
- return count($this->_transports) > 0;
- }
-
- /**
- * Start this Transport mechanism.
- */
- public function start()
- {
- $this->_transports = array_merge($this->_transports, $this->_deadTransports);
- }
-
- /**
- * Stop this Transport mechanism.
- */
- public function stop()
- {
- foreach ($this->_transports as $transport)
- {
- $transport->stop();
- }
- }
-
- /**
- * Send the given Message.
- *
- * Recipient/sender data will be retreived from the Message API.
- * The return value is the number of recipients who were accepted for delivery.
- *
- * @param Swift_Mime_Message $message
- * @param string[] &$failedRecipients to collect failures by-reference
- * @return int
- */
- public function send(Swift_Mime_Message $message, &$failedRecipients = null)
- {
- $maxTransports = count($this->_transports);
- $sent = 0;
-
- for ($i = 0; $i < $maxTransports
- && $transport = $this->_getNextTransport(); ++$i)
- {
- try
- {
- if (!$transport->isStarted())
- {
- $transport->start();
- }
- if ($sent = $transport->send($message, $failedRecipients))
- {
- break;
- }
- }
- catch (Swift_TransportException $e)
- {
- $this->_killCurrentTransport();
- }
- }
-
- if (count($this->_transports) == 0)
- {
- throw new Swift_TransportException(
- 'All Transports in LoadBalancedTransport failed, or no Transports available'
- );
- }
-
- return $sent;
- }
-
- /**
- * Register a plugin.
- *
- * @param Swift_Events_EventListener $plugin
- */
- public function registerPlugin(Swift_Events_EventListener $plugin)
- {
- foreach ($this->_transports as $transport)
- {
- $transport->registerPlugin($plugin);
- }
- }
-
- // -- Protected methods
-
- /**
- * Rotates the transport list around and returns the first instance.
- *
- * @return Swift_Transport
- * @access protected
- */
- protected function _getNextTransport()
- {
- if ($next = array_shift($this->_transports))
- {
- $this->_transports[] = $next;
- }
- return $next;
- }
-
- /**
- * Tag the currently used (top of stack) transport as dead/useless.
- *
- * @access protected
- */
- protected function _killCurrentTransport()
- {
- if ($transport = array_pop($this->_transports))
- {
- try
- {
- $transport->stop();
- }
- catch (Exception $e)
- {
- }
- $this->_deadTransports[] = $transport;
- }
- }
-
-}