source: sample/pingpong/PingPong.h@ 3037

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

-jede Menge fixes und Umstellungen
-angefangen ariba/interface los zu werden, erste dateien sind weg

File size: 2.2 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 virtual void onMessageSent(seqnum_t seq_num, bool failed, const DataMessage& msg = DataMessage::UNSPECIFIED);
45
46 // node listener interface
47 virtual void onJoinCompleted( const SpoVNetID& vid );
48 virtual void onJoinFailed( const SpoVNetID& vid );
49 virtual void onLeaveCompleted( const SpoVNetID& vid );
50 virtual void onLeaveFailed( const SpoVNetID& vid );
51
52 // startup wrapper interface
53 virtual void startup();
54 virtual void shutdown();
55
56 // timer events
57 virtual void eventFunction();
58
59private:
60 // the ariba module and a node
61 AribaModule* ariba;
62 Node* node;
63
64 // flag, whether this node initiates or just joins the spovnet
65 bool isInitiator;
66
67 // the ping pong service id
68 static ServiceID PINGPONG_ID;
69
70 // the current ping id
71 unsigned long pingId;
72
73};
74
75// needed for simulation support
76ARIBA_SIMULATION_SERVICE(PingPong);
77
78}}} // namespace ariba, application, pingpong
79
80#endif // __PINGPONG_H_
Note: See TracBrowser for help on using the repository browser.