TYPO3  7.6
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Swift_Plugins_ThrottlerPlugin Class Reference
Inheritance diagram for Swift_Plugins_ThrottlerPlugin:
Swift_Plugins_BandwidthMonitorPlugin Swift_Plugins_Sleeper Swift_Plugins_Timer Swift_Events_SendListener Swift_Events_CommandListener Swift_Events_ResponseListener Swift_InputByteStream Swift_Events_EventListener Swift_Events_EventListener Swift_Events_EventListener

Public Member Functions

 __construct ($rate, $mode=self::BYTES_PER_MINUTE, Swift_Plugins_Sleeper $sleeper=null, Swift_Plugins_Timer $timer=null)
 
 beforeSendPerformed (Swift_Events_SendEvent $evt)
 
 sendPerformed (Swift_Events_SendEvent $evt)
 
 sleep ($seconds)
 
 getTimestamp ()
 
- Public Member Functions inherited from Swift_Plugins_BandwidthMonitorPlugin
 beforeSendPerformed (Swift_Events_SendEvent $evt)
 
 sendPerformed (Swift_Events_SendEvent $evt)
 
 commandSent (Swift_Events_CommandEvent $evt)
 
 responseReceived (Swift_Events_ResponseEvent $evt)
 
 write ($bytes)
 
 commit ()
 
 bind (Swift_InputByteStream $is)
 
 unbind (Swift_InputByteStream $is)
 
 flushBuffers ()
 
 getBytesOut ()
 
 getBytesIn ()
 
 reset ()
 

Public Attributes

const BYTES_PER_MINUTE = 0x01
 
const MESSAGES_PER_SECOND = 0x11
 
const MESSAGES_PER_MINUTE = 0x10
 

Private Member Functions

 _throttleBytesPerMinute ($timePassed)
 
 _throttleMessagesPerSecond ($timePassed)
 
 _throttleMessagesPerMinute ($timePassed)
 

Private Attributes

 $_sleeper
 
 $_timer
 
 $_start
 
 $_rate
 
 $_mode
 
 $_messages = 0
 

Detailed Description

Throttles the rate at which emails are sent.

Author
Chris Corbyn

Definition at line 16 of file ThrottlerPlugin.php.

Constructor & Destructor Documentation

__construct (   $rate,
  $mode = self::BYTES_PER_MINUTE,
Swift_Plugins_Sleeper  $sleeper = null,
Swift_Plugins_Timer  $timer = null 
)

Create a new ThrottlerPlugin.

Parameters
int$rate
int$mode,defaultsto BYTES_PER_MINUTE
Swift_Plugins_Sleeper$sleeper(only needed in testing)
Swift_Plugins_Timer$timer(only needed in testing)

Definition at line 79 of file ThrottlerPlugin.php.

Member Function Documentation

_throttleBytesPerMinute (   $timePassed)
private

Get a number of seconds to sleep for.

Parameters
int$timePassed
Returns
int

Definition at line 166 of file ThrottlerPlugin.php.

References Swift_Plugins_BandwidthMonitorPlugin\getBytesOut().

Referenced by beforeSendPerformed().

_throttleMessagesPerMinute (   $timePassed)
private

Get a number of seconds to sleep for.

Parameters
int$timePassed
Returns
int

Definition at line 194 of file ThrottlerPlugin.php.

Referenced by beforeSendPerformed().

_throttleMessagesPerSecond (   $timePassed)
private

Get a number of seconds to sleep for.

Parameters
int$timePassed
Returns
int

Definition at line 180 of file ThrottlerPlugin.php.

References $_rate.

Referenced by beforeSendPerformed().

beforeSendPerformed ( Swift_Events_SendEvent  $evt)

Invoked immediately before the Message is sent.

Parameters
Swift_Events_SendEvent$evt

Implements Swift_Events_SendListener.

Definition at line 92 of file ThrottlerPlugin.php.

References $_start, _throttleBytesPerMinute(), _throttleMessagesPerMinute(), _throttleMessagesPerSecond(), getTimestamp(), and sleep().

getTimestamp ( )

Get the current UNIX timestamp.

Returns
int

Implements Swift_Plugins_Timer.

Definition at line 150 of file ThrottlerPlugin.php.

Referenced by beforeSendPerformed().

sendPerformed ( Swift_Events_SendEvent  $evt)

Invoked when a Message is sent.

Parameters
Swift_Events_SendEvent$evt

Implements Swift_Events_SendListener.

Definition at line 125 of file ThrottlerPlugin.php.

References $_messages.

sleep (   $seconds)

Sleep for $seconds.

Parameters
int$seconds

Implements Swift_Plugins_Sleeper.

Definition at line 136 of file ThrottlerPlugin.php.

Referenced by beforeSendPerformed().

Member Data Documentation

$_messages = 0
private

Definition at line 69 of file ThrottlerPlugin.php.

Referenced by sendPerformed().

$_mode
private

Definition at line 62 of file ThrottlerPlugin.php.

$_rate
private

Definition at line 53 of file ThrottlerPlugin.php.

Referenced by _throttleMessagesPerSecond().

$_sleeper
private

Definition at line 32 of file ThrottlerPlugin.php.

$_start
private

Definition at line 46 of file ThrottlerPlugin.php.

Referenced by beforeSendPerformed().

$_timer
private

Definition at line 39 of file ThrottlerPlugin.php.

const BYTES_PER_MINUTE = 0x01

Flag for throttling in bytes per minute

Definition at line 19 of file ThrottlerPlugin.php.

const MESSAGES_PER_MINUTE = 0x10

Flag for throttling in emails per minute

Definition at line 25 of file ThrottlerPlugin.php.

const MESSAGES_PER_SECOND = 0x11

Flag for throttling in emails per second (Amazon SES)

Definition at line 22 of file ThrottlerPlugin.php.