source: sample/pingpong/PingPong.h@ 3056

Last change on this file since 3056 was 3056, checked in by Christoph Mayer, 15 years ago

-fixed all compile errors, but now the overlay functionality is messed up somewhere

File size: 2.1 KB
Line 
1#ifndef __PINGPONG_H_
2#define __PINGPONG_H_
3
4#include "ariba/ariba.h"
5#include "PingPongMessage.h"
6#include "ariba/utility/system/StartupInterface.h"
7#include "ariba/utility/system/Timer.h"
8
9using namespace ariba;
10using ariba::utility::StartupInterface;
11using ariba::utility::Timer;
12
13namespace ariba {
14namespace application {
15namespace pingpong {
16
17/**
18/* The PingPong main class
19/* This class implements an example service for demonstration purposes
20/* The pingpong class sends and receives messages between two SpoVNet
21/* instances
22**/
23class PingPong :
24 public NodeListener,
25 public CommunicationListener,
26 public StartupInterface,
27 public Timer {
28
29 use_logging_h(PingPong);
30
31public:
32 PingPong();
33 virtual ~PingPong();
34
35protected:
36 // communication listener interface
37 virtual bool onLinkRequest(const NodeID& remote, const DataMessage& msg);
38 virtual void onMessage(const DataMessage& msg, const NodeID& remote, const LinkID& lnk= LinkID::UNSPECIFIED);
39 virtual void onLinkUp(const LinkID& lnk, const NodeID& remote);
40 virtual void onLinkDown(const LinkID& lnk, const NodeID& remote);
41 virtual void onLinkChanged(const LinkID& lnk, const NodeID& remote);
42 virtual void onLinkFail(const LinkID& lnk, const NodeID& remote);
43 virtual void onLinkQoSChanged(const LinkID& lnk, const NodeID& remote, const LinkProperties& prop);
44
45 // node listener interface
46 virtual void onJoinCompleted( const SpoVNetID& vid );
47 virtual void onJoinFailed( const SpoVNetID& vid );
48 virtual void onLeaveCompleted( const SpoVNetID& vid );
49 virtual void onLeaveFailed( const SpoVNetID& vid );
50
51 // startup wrapper interface
52 virtual void startup();
53 virtual void shutdown();
54
55 // timer events
56 virtual void eventFunction();
57
58private:
59 // the ariba module and a node
60 AribaModule* ariba;
61 Node* node;
62
63 // flag, whether this node initiates or just joins the spovnet
64 bool isInitiator;
65
66 // the ping pong service id
67 static ServiceID PINGPONG_SERVICEID;
68
69 // the current ping id
70 unsigned long pingId;
71
72};
73
74// needed for simulation support
75ARIBA_SIMULATION_SERVICE(PingPong);
76
77}}} // namespace ariba, application, pingpong
78
79#endif // __PINGPONG_H_
Note: See TracBrowser for help on using the repository browser.