IBR-DTNSuite  0.10
ApiP2PExtensionHandler.h
Go to the documentation of this file.
1 /*
2  * ApiP2PExtensionHandler.h
3  *
4  * Created on: 25.02.2013
5  * Author: morgenro
6  */
7 
8 #include "api/Registration.h"
9 #include "api/ClientHandler.h"
10 #include "core/Node.h"
11 #include "net/P2PDialupExtension.h"
12 #include <ibrcommon/thread/Mutex.h>
13 
14 #ifndef APIP2PEXTENSIONHANDLER_H_
15 #define APIP2PEXTENSIONHANDLER_H_
16 
17 namespace dtn
18 {
19  namespace api
20  {
22  public:
23  enum COMMAND {
24  CMD_NOOP = 100,
25  CMD_CONNECT = 101,
27  };
28 
30  virtual ~ApiP2PExtensionHandler();
31 
32  virtual void run();
33  virtual void finally();
34  virtual void setup();
35  virtual void __cancellation() throw ();
36 
41  virtual dtn::core::Node::Protocol getProtocol() const;
42 
46  virtual void connect(const dtn::core::Node::URI &uri);
47 
51  virtual void disconnect(const dtn::core::Node::URI &uri);
52 
53  private:
54  void processCommand(const std::vector<std::string> &cmd);
55 
56  ibrcommon::Mutex _write_lock;
57  const dtn::core::Node::Protocol _proto;
58  };
59  } /* namespace api */
60 } /* namespace dtn */
61 #endif /* APIP2PEXTENSIONHANDLER_H_ */