def test_ndn_face_connect_disconnect(self):

        handle = _pyndn.create()

        self.assertRaises(
            _pyndn.NDNError, _pyndn.disconnect,
            handle)  # "Closing an unopened connection should fail"

        _pyndn.connect(handle)
        _pyndn.disconnect(handle)

        self.assertRaises(_pyndn.NDNError, _pyndn.disconnect,
                          handle)  # "Closing handle twice shouldn't work"

        del handle

        c = NDN()
        _pyndn.disconnect(c.ndn_data)
        del c
    def test_setRunTimeout(self):
        c = NDN()
        c.run(0)

        def change_timeout():
            # print("Changing timeout!")
            c.setRunTimeout(1000)

        t = Timer(0.1, change_timeout)
        t.start()

        org_start = datetime.now()
        while True:
            self.assertLess((datetime.now() - org_start).seconds,
                            3)  # setRunTimeout() failed

            start = datetime.now()
            c.run(5)
            diff = datetime.now() - start

            if diff.seconds * 1000000 + diff.microseconds > 500000:
                break
        print("#Receiver# Got response %d" % kind)
        if (kind == 4):
            raise AssertionError("Got timeout")

        upcall_called = True
        #receiver_handle.setRunTimeout(0)
        event_loop.stop()

        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
Exemple #4
0
		si.finalBlockID = last_segment
		si.publisherPublicKeyDigest = key.publicKeyID
		si.keyLocator = Key.KeyLocator(key)

		# ContentObject
		co = ContentObject.ContentObject()
		co.content = content
		co.name = co_name
		co.signedInfo = si

		co.sign(key)
		return co

	name = Name.Name('/repo/upload/test')
	name_v = Name.Name(name)
	name_v.appendVersion()

	handle = NDN.NDN()
	key = handle.getDefaultKey()
	last_seg = segment(9)

	content = []
	for i in range(10):
		name_s = Name.Name(name_v)
		name_s += segment(i)
		co = publish(key, name_s, last_seg, "Segment: %d\n" % i)
		content.append(co)

	upload = RepoUpload(handle, name_v, content)
	upload.start()
Exemple #5
0
from pyndn import NDN, Name

c = NDN()
print(c)

n = Name()
print(n)

n = Name("ndn:/ndnx/ping")
print(n)

co = c.get(n)
print(co)

#this shouldn't cause segfault
print(n)

n = Name("ndn:/ndnx/some_nonexisting_name")
co = c.get(n, None, 100)

#this shouldn't cause segfault!
print(co)