1: <?php
2:
3: /**
4: * Avisota newsletter and mailing system
5: *
6: * PHP Version 5.3
7: *
8: * @copyright bit3 UG 2013
9: * @author Tristan Lins <tristan.lins@bit3.de>
10: * @package avisota-core
11: * @license LGPL-3.0+
12: * @link http://avisota.org
13: */
14:
15: namespace Avisota\Transport;
16:
17: use Avisota\Message\MessageInterface;
18: use Avisota\Queue\QueueInterface;
19:
20: /**
21: * Queuing transport.
22: *
23: * @package avisota-core
24: */
25: class QueueTransport implements TransportInterface
26: {
27: /**
28: * @var QueueInterface
29: */
30: protected $queue;
31:
32: /**
33: * @param QueueInterface $queue
34: */
35: public function __construct(QueueInterface $queue)
36: {
37: $this->queue = $queue;
38: }
39:
40: /**
41: * @param QueueInterface $queue
42: */
43: public function setQueue(QueueInterface $queue)
44: {
45: $this->queue = $queue;
46: return $this;
47: }
48:
49: /**
50: * @return \Swift_Mailer
51: */
52: public function getQueue()
53: {
54: return $this->queue;
55: }
56:
57: /**
58: * {@inheritdoc}
59: */
60: public function initialise()
61: {
62: }
63:
64: /**
65: * {@inheritdoc}
66: */
67: public function flush()
68: {
69: }
70:
71: /**
72: * {@inheritdoc}
73: */
74: public function send(MessageInterface $message)
75: {
76: $this->queue->enqueue($message);
77: return new TransportStatus($message, 0, array());
78: }
79: }
80: