[6760] | 1 | #ifndef __PINGPONG_H_
|
---|
| 2 | #define __PINGPONG_H_
|
---|
| 3 |
|
---|
| 4 | #include "ariba/ariba.h"
|
---|
| 5 | #include "ariba/utility/system/StartupInterface.h"
|
---|
| 6 | #include "ariba/utility/system/Timer.h"
|
---|
| 7 |
|
---|
| 8 | #include <vector>
|
---|
| 9 |
|
---|
| 10 | using namespace ariba;
|
---|
| 11 | using ariba::utility::StartupInterface;
|
---|
| 12 | using ariba::utility::Timer;
|
---|
| 13 |
|
---|
| 14 | namespace ariba {
|
---|
| 15 | namespace application {
|
---|
| 16 | namespace dhttest {
|
---|
| 17 |
|
---|
| 18 | using namespace std;
|
---|
| 19 |
|
---|
| 20 | /*
|
---|
| 21 | * DHTTest main class
|
---|
| 22 | */
|
---|
| 23 | class DHTTest: public NodeListener,
|
---|
| 24 | public CommunicationListener,
|
---|
| 25 | public StartupInterface,
|
---|
| 26 | public Timer {
|
---|
| 27 |
|
---|
| 28 | use_logging_h(DHTTest);
|
---|
| 29 |
|
---|
| 30 | public:
|
---|
| 31 | DHTTest();
|
---|
| 32 | virtual ~DHTTest();
|
---|
| 33 |
|
---|
| 34 | protected:
|
---|
| 35 | // communication listener interface
|
---|
| 36 | virtual bool onLinkRequest(const NodeID& remote, const DataMessage& msg =
|
---|
| 37 | DataMessage::UNSPECIFIED);
|
---|
| 38 | virtual void onLinkUp(const LinkID& lnk, const NodeID& remote);
|
---|
| 39 | virtual void onLinkDown(const LinkID& lnk, const NodeID& remote);
|
---|
| 40 | virtual void onLinkChanged(const LinkID& lnk, const NodeID& remote);
|
---|
| 41 | virtual void onLinkFail(const LinkID& lnk, const NodeID& remote);
|
---|
| 42 |
|
---|
| 43 | // the dht message handler (for answers to get() requests)
|
---|
| 44 | virtual void onKeyValue( const Data& key, const vector<Data>& value );
|
---|
| 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 |
|
---|
| 59 | // helper functions to convert from string to Data and visa versa
|
---|
| 60 | Data stod(string s);
|
---|
| 61 | string dtos(Data d);
|
---|
| 62 |
|
---|
| 63 | private:
|
---|
| 64 | // the ariba module and a node
|
---|
| 65 | AribaModule* ariba;
|
---|
| 66 | Node* node;
|
---|
| 67 | string name;
|
---|
| 68 |
|
---|
| 69 | // this is for the specific dht test
|
---|
| 70 | string key;
|
---|
| 71 | string data;
|
---|
| 72 | int counter;
|
---|
| 73 |
|
---|
| 74 | // the dht test service id
|
---|
| 75 | static ServiceID DHTTEST_SERVICEID;
|
---|
| 76 |
|
---|
| 77 | };
|
---|
| 78 |
|
---|
| 79 | // needed for simulation support
|
---|
| 80 | ARIBA_SIMULATION_SERVICE(DHTTest);
|
---|
| 81 |
|
---|
| 82 | }}} // namespace ariba, application, pingpong
|
---|
| 83 |
|
---|
| 84 | #endif // __DHTTEST_H_
|
---|