Rev 1309 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1309 | Rev 1317 | ||
|---|---|---|---|
| Line 13... | Line 13... | ||
| 13 | Subscriber::Subscriber(boost::shared_ptr<Broker> broker, bool receiveFromMyself) |
13 | Subscriber::Subscriber(boost::shared_ptr<Broker> broker, bool receiveFromMyself) |
| 14 | { |
14 | { |
| 15 | LOG.setName("Subscriber"); |
15 | LOG.setName("Subscriber"); |
| 16 | this->myBroker = broker; |
16 | this->myBroker = broker; |
| 17 | this->myReceiveFromMyself = receiveFromMyself; |
17 | this->myReceiveFromMyself = receiveFromMyself; |
| 18 |
|
18 | this->myBroker->connect(boost::bind(&Subscriber::newMessageHandler, this, _1)); |
| 19 | } |
19 | } |
| 20 | 20 | ||
| 21 | Subscriber::~Subscriber() |
21 | Subscriber::~Subscriber() |
| 22 | { |
22 | { |
| 23 | this->stop(); |
23 | this->stop(); |
| 24 | } |
24 | } |
| 25 | 25 | ||
| 26 | void Subscriber::put(Message::pointer message) |
26 | void Subscriber::put(Message::pointer message) |
| 27 | { |
27 | { |
| 28 |
|
28 | message->setOrigin(this); |
| 29 |
|
29 | this->myBroker->put(message); |
| 30 | } |
30 | } |
| 31 | 31 | ||
| 32 | void Subscriber::onNewMessage(Message::pointer message) |
32 | void Subscriber::onNewMessage(Message::pointer message) |
| 33 | { |
33 | { |
| 34 | } |
34 | } |
| 35 | 35 | ||
| 36 | void Subscriber::newMessageHandler(Message::pointer message) |
36 | void Subscriber::newMessageHandler(Message::pointer message) |
| 37 | { |
37 | { |
| 38 | if (this->myReceiveFromMyself || ! |
38 | if (this->myReceiveFromMyself || !message->isOrigin(this)) |
| 39 | { |
39 | { |
| 40 | this->myQueue.push(message); |
40 | this->myQueue.push(message); |
| 41 | 41 | ||
| 42 | this->myCondition.notify_all(); |
42 | this->myCondition.notify_all(); |
| 43 | } |
43 | } |