Badar's initial import for his Multicast code
[tourist.git] / App / include / Tourist / App / Multicast.h
blob1b6bbc1b03ead28ea2ede1e9a930d1a98eee9156
1 #ifndef MULTICAST_H_
2 #define MULTICAST_H_
4 #include "Tourist/Message/RemoteNode.h"
5 #include "Tourist/LocalNode.h"
6 #include "Tourist/App/Application.h"
7 #include "Tourist/Message/MessageTypeData.h"
8 #include "Tourist/Message/MsgMulticast.h"
9 #include "Tourist/Message/MessageHeader.h"
10 #include "Poco/Runnable.h"
11 #include "Poco/NotificationQueue.h"
14 using Tourist::Message::RemoteNode;
15 using Tourist::Message::MessageDispatcher;
16 using Tourist::Message::MessageTypeData;
17 using Tourist::Message::MessageHeader;
18 using Tourist::Message::MsgMulticast;
19 using Tourist::App::Application;
20 using Poco::Runnable;
21 using Poco::NotificationQueue;
23 using Tourist::Message::MessageTypeData;
26 namespace Tourist {
27 namespace App {
29 class Multicast : public Runnable {
30 public:
31 Multicast(Application *_app, int objCount);
32 ~Multicast();
34 void run();
35 void stop();
38 //void levelChangeEvent(int newLevel, LocalNode *localNode);
39 void levelChangeEvent(int newLevel, Node *localNode);
40 int sendEvent(Node *source, Node *target, int event_type, int step);
41 void receiveMulticastMsg();
42 void onMulticastMsg(const AutoPtr<MessageNotification>& notification);
43 void multicastRouting(Node* source, int event_type, int step);
45 private:
46 void processQueue();
48 bool shouldBeRunning, isStopped;
49 Application *app;
50 Logger &logger;
51 NotificationQueue queue;
53 //Used for Debug purpose
54 int objCount;
55 const static bool debugFlag = true;
61 #endif /*MULTICAST_H_*/