Added initial expressInterest
diff --git a/ndn-cpp/NDN.hpp b/ndn-cpp/NDN.hpp
index 9c8c691..09dfad2 100644
--- a/ndn-cpp/NDN.hpp
+++ b/ndn-cpp/NDN.hpp
@@ -7,21 +7,38 @@
#define NDN_NDN_HPP
#include "Closure.hpp"
+#include "Interest.hpp"
+#include "transport/Transport.hpp"
#include "encoding/BinaryXMLElementReader.hpp"
namespace ndn {
class NDN : public ElementListener {
public:
- NDN(Closure *closure)
+ NDN(const ptr_lib::shared_ptr<Transport> &transport, const ptr_lib::shared_ptr<Closure> &tempClosure)
{
- closure_ = closure;
+ transport_ = transport;
+ tempClosure_ = tempClosure;
}
+ /**
+ * Encode name as an Interest. If interestTemplate is not 0, use its interest selectors.
+ * Send the interest through the transport, read the entire response and call
+ * closure->upcall(UPCALL_CONTENT (or UPCALL_CONTENT_UNVERIFIED),
+ * UpcallInfo(this, interest, 0, contentObject)).
+ * @param name reference to a Name for the interest. This does not keep a pointer to the Name object.
+ * @param closure a shared_ptr for the Closure. This uses shared_ptr to take another reference to the object.
+ * @param interestTemplate if not 0, copy interest selectors from the template. This does not keep a pointer to the Interest object.
+ */
+ void expressInterest(const Name &name, const ptr_lib::shared_ptr<Closure> &closure, const Interest *interestTemplate);
+
+ Transport &tempGetTransport() { return *transport_; }
+
virtual void onReceivedElement(unsigned char *element, unsigned int elementLength);
private:
- Closure *closure_;
+ ptr_lib::shared_ptr<Transport> transport_;
+ ptr_lib::shared_ptr<Closure> tempClosure_;
};
}