All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
nrd-controller.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil -*- */
7 #ifndef NDN_MANAGEMENT_NRD_CONTROLLER_HPP
8 #define NDN_MANAGEMENT_NRD_CONTROLLER_HPP
9 
10 #include "nfd-controller.hpp"
11 
12 namespace ndn {
13 namespace nrd {
14 
16 class PrefixRegOptions;
17 
19 {
20 public:
22  typedef function<void(const PrefixRegOptions&)> CommandSucceedCallback;
23 
24  explicit
25  Controller(Face& face);
26 
27 public: // selfreg using RIB Management commands
28  virtual void
29  selfRegisterPrefix(const Name& prefixToRegister,
30  const SuccessCallback& onSuccess,
31  const FailCallback& onFail);
32 
33  virtual void
34  selfDeregisterPrefix(const Name& prefixToRegister,
35  const SuccessCallback& onSuccess,
36  const FailCallback& onFail);
37 
38 public:
40  void
41  registerPrefix(const PrefixRegOptions& options,
42  const CommandSucceedCallback& onSuccess,
43  const FailCallback& onFail);
44 
46  void
47  unregisterPrefix(const PrefixRegOptions& options,
48  const CommandSucceedCallback& onSuccess,
49  const FailCallback& onFail);
50 
52  void
53  advertisePrefix(const PrefixRegOptions& options,
54  const CommandSucceedCallback& onSuccess,
55  const FailCallback& onFail);
56 
58  void
59  withdrawPrefix(const PrefixRegOptions& options,
60  const CommandSucceedCallback& onSuccess,
61  const FailCallback& onFail);
62 
63 protected:
65  void
66  startCommand(const std::string& command,
67  const PrefixRegOptions& options,
68  const CommandSucceedCallback& onSuccess,
69  const FailCallback& onFailure);
70 
71 private:
73  void
74  processCommandResponse(Data& data,
75  const CommandSucceedCallback& onSuccess,
76  const FailCallback& onFail);
77 };
78 
79 } // namespace nrd
80 } // namespace ndn
81 
82 #endif // NDN_MANAGEMENT_NRD_CONTROLLER_HPP
virtual void selfRegisterPrefix(const Name &prefixToRegister, const SuccessCallback &onSuccess, const FailCallback &onFail)
virtual void selfDeregisterPrefix(const Name &prefixToRegister, const SuccessCallback &onSuccess, const FailCallback &onFail)
void advertisePrefix(const PrefixRegOptions &options, const CommandSucceedCallback &onSuccess, const FailCallback &onFail)
void withdrawPrefix(const PrefixRegOptions &options, const CommandSucceedCallback &onSuccess, const FailCallback &onFail)
function< void()> SuccessCallback
Definition: controller.hpp:23
void startCommand(const std::string &command, const PrefixRegOptions &options, const CommandSucceedCallback &onSuccess, const FailCallback &onFailure)
function< void(const ControlParameters &)> CommandSucceedCallback
a callback on command success
function< void(const std::string &)> FailCallback
Definition: controller.hpp:24
Abstraction to communicate with local or remote NDN forwarder.
Definition: face.hpp:54
NFD Management protocol - ControlCommand client.
A Name holds an array of Name::Component and represents an NDN name.
Definition: name.hpp:26
function< void(const PrefixRegOptions &)> CommandSucceedCallback
void registerPrefix(const PrefixRegOptions &options, const CommandSucceedCallback &onSuccess, const FailCallback &onFail)
Abstraction for prefix registration options for NRD Prefix registration protocol. ...
void unregisterPrefix(const PrefixRegOptions &options, const CommandSucceedCallback &onSuccess, const FailCallback &onFail)