Subversion Repositories HomeAutomation

Rev

Rev 1311 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. /*
  2.  * Broker.h
  3.  *
  4.  *  Created on: Apr 25, 2009
  5.  *      Author: Mattias Runge
  6.  */
  7.  
  8. #ifndef BROKER_H_
  9. #define BROKER_H_
  10.  
  11. #include <boost/signal.hpp>
  12. #include <boost/make_shared.hpp>
  13. #include "message/Message.h"
  14. #include "log/Logger.h"
  15.  
  16. namespace atom {
  17. namespace broker {
  18.  
  19. using namespace std;
  20. using namespace utils;
  21. using namespace message;
  22.  
  23. class Broker
  24. {
  25.     typedef boost::signal<void(Message::pointer message)> OnMessageSignal;
  26.  
  27. public:
  28.     typedef boost::shared_ptr<Broker> pointer;
  29.  
  30.     ~Broker();
  31.  
  32.     void connect(const OnMessageSignal::slot_type & slot);
  33.     void put(Message::pointer message);
  34.  
  35.     static pointer getInstance();
  36.  
  37. private:
  38.     Broker();
  39.  
  40.     static pointer Instance;
  41.  
  42.     log::Logger LOG;
  43.  
  44.     OnMessageSignal onNewMessage;
  45. };
  46.  
  47. }
  48. }
  49. #endif /* BROKER_H_ */
  50.