blob: c41f1d7456655f3f6d98ba6c783c6bd5d83bb35f [file] [log] [blame]
Jeff Thompsonaa4e6db2013-07-15 17:25:23 -07001/**
2 * @author: Jeff Thompson
3 * See COPYING for copyright and distribution information.
4 */
5
6#include "encoding/BinaryXMLDecoder.hpp"
7#include "c/encoding/BinaryXML.h"
8#include "ContentObject.hpp"
9#include "NDN.hpp"
10
Jeff Thompsonb982b6d2013-07-15 18:15:45 -070011using namespace std;
12
Jeff Thompsonaa4e6db2013-07-15 17:25:23 -070013namespace ndn {
14
Jeff Thompsonc172be32013-07-16 15:08:05 -070015void NDN::expressInterest(const Name &name, const ptr_lib::shared_ptr<Closure> &closure, const Interest *interestTemplate)
16{
17 Interest interest(name);
18 vector<unsigned char> encoding;
19 interest.encode(encoding);
20
Jeff Thompsonbeb8b7d2013-07-16 15:49:21 -070021 transport_->connect(host_.c_str(), port_);
Jeff Thompsonc172be32013-07-16 15:08:05 -070022 transport_->send(&encoding[0], encoding.size());
23}
24
Jeff Thompsonaa4e6db2013-07-15 17:25:23 -070025void NDN::onReceivedElement(unsigned char *element, unsigned int elementLength)
26{
27 BinaryXMLDecoder decoder(element, elementLength);
28
29 if (decoder.peekDTag(ndn_BinaryXML_DTag_ContentObject)) {
Jeff Thompsonb982b6d2013-07-15 18:15:45 -070030 ptr_lib::shared_ptr<ContentObject> contentObject(new ContentObject());
31 contentObject->decode(element, elementLength);
32
Jeff Thompson85ff99f2013-07-15 18:23:58 -070033 ptr_lib::shared_ptr<Interest> dummyInterest;
34 UpcallInfo upcallInfo(this, dummyInterest, 0, contentObject);
Jeff Thompsonc172be32013-07-16 15:08:05 -070035 tempClosure_->upcall(UPCALL_CONTENT, upcallInfo);
Jeff Thompsonaa4e6db2013-07-15 17:25:23 -070036 }
37}
38
39}