from pyndn import NDN, Name, Interest, Closure from time import sleep worked = False class MyClosure(Closure): def upcall(self, kind, upcallInfo): global worked print("Got response") print(kind) print(upcallInfo) worked = True n = Name("ndn:/ndnx/ping") i = Interest() closure = MyClosure() c = NDN() res = c.expressInterest(n, closure, i) print(res) #causes crashes c.run(10) print("Ha!") assert(worked)
return pyndn.RESULT_OK senderclosure = SenderClosure() receiverclosure = ReceiverClosure() sender_handle = NDN() receiver_handle = NDN() #Looks like the NDNx API doesn't deliver messages #that we sent to ourselves, so we just push it sender_handle.setInterestFilter(n, senderclosure) #senderclosure.upcall(1, None) i = Interest() receiver_handle.expressInterest(n, receiverclosure, i) upcall_called = False print("Running loops") #So sender closure is called #sender_handle.run(500) #So receiver closure is called #receiver_handle.run(500) # New way of doing this event_loop = pyndn.EventLoop(sender_handle, receiver_handle) event_loop.run()
return pyndn.RESULT_OK senderclosure = SenderClosure() receiverclosure = ReceiverClosure() sender_handle = NDN() receiver_handle = NDN() #Looks like the NDNx API doesn't deliver messages #that we sent to ourselves, so we just push it sender_handle.setInterestFilter(n, senderclosure) #senderclosure.upcall(1, None) i = Interest() receiver_handle.expressInterest(n, receiverclosure, i) upcall_called = False print("Running loops") #So sender closure is called #sender_handle.run(500) #So receiver closure is called #receiver_handle.run(500) # New way of doing this event_loop = pyndn.EventLoop(sender_handle, receiver_handle) event_loop.run()