Subversion Repositories HomeAutomation

Rev

Rev 1319 | Details | Compare with Previous | Last modification | View Log | SVN | RSS feed

Rev Author Line No. Line
1309 runge 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>
1310 runge 12
#include <boost/make_shared.hpp>
1311 runge 13
#include "message/Message.h"
1315 runge 14
#include "log/Logger.h"
1309 runge 15
 
16
namespace atom {
17
 
18
class Broker
19
{
20
public:
1403 runge 21
    typedef boost::shared_ptr<Broker> Pointer;
1309 runge 22
 
23
    ~Broker();
24
 
1403 runge 25
    void Connect(const Signal_OnMessage::slot_type &slot);
26
    void Put(Message::Pointer message);
1309 runge 27
 
1403 runge 28
    static Pointer GetInstance();
1309 runge 29
 
30
private:
1403 runge 31
    typedef boost::signal<void(Message::pointer message)> Signal_OnMessage;
32
 
1309 runge 33
    Broker();
34
 
1403 runge 35
    Signal_OnMessage OnMessage;
1309 runge 36
 
1315 runge 37
    log::Logger LOG;
1310 runge 38
 
1403 runge 39
    static Pointer instance_;
40
 
41
 
1309 runge 42
};
43
 
1403 runge 44
} // namespace atom
45
 
1309 runge 46
#endif /* BROKER_H_ */