Rev 1595 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1595 | Rev 1598 | ||
|---|---|---|---|
| Line 20... | Line 20... | ||
| 20 | 20 | ||
| 21 | #ifndef BROKER_SUBSCRIBER_H |
21 | #ifndef BROKER_SUBSCRIBER_H |
| 22 | #define BROKER_SUBSCRIBER_H |
22 | #define BROKER_SUBSCRIBER_H |
| 23 | 23 | ||
| 24 | #include <boost/shared_ptr.hpp> |
24 | #include <boost/shared_ptr.hpp> |
| 25 | #include <boost/asio.hpp> |
- | |
| - | 25 | ||
| 26 | #include |
26 | #include "common/IoService.h" |
| 27 | 27 | ||
| 28 | #include "Message.h" |
28 | #include "Message.h" |
| 29 | 29 | ||
| 30 | namespace atom { |
30 | namespace atom { |
| 31 | namespace broker { |
31 | namespace broker { |
| 32 | 32 | ||
| 33 | class Subscriber : public Origin |
33 | class Subscriber : virtual public common::IoService, public Origin |
| 34 | { |
34 | { |
| 35 | public: |
35 | public: |
| 36 | typedef boost::shared_ptr<Subscriber> Pointer; |
36 | typedef boost::shared_ptr<Subscriber> Pointer; |
| 37 | 37 | ||
| 38 | Subscriber(bool receive_from_self); |
38 | Subscriber(bool receive_from_self); |
| 39 | virtual ~Subscriber(); |
39 | virtual ~Subscriber(); |
| 40 | 40 | ||
| 41 | protected: |
41 | protected: |
| 42 | typedef boost::shared_ptr<char> TrackerPointer; |
- | |
| 43 | - | ||
| 44 | boost::asio::io_service io_service_; |
- | |
| 45 | TrackerPointer tracker_; |
- | |
| 46 | - | ||
| 47 | virtual void SlotOnMessageHandler(Message::Pointer message) = 0; |
42 | virtual void SlotOnMessageHandler(Message::Pointer message) = 0; |
| 48 | 43 | ||
| 49 | private: |
44 | private: |
| 50 | boost::thread thread_; |
- | |
| 51 | boost::asio::io_service::work io_service_work_; |
- | |
| 52 | - | ||
| 53 | bool receive_from_self_; |
45 | bool receive_from_self_; |
| 54 | 46 | ||
| 55 | void SlotOnMessage(Message::Pointer message); |
47 | void SlotOnMessage(Message::Pointer message); |
| 56 | }; |
48 | }; |
| 57 | 49 | ||