Пример #1
0
    def __init__(self, prefixstr):
        self.handle = CCN()

        #XXX: temporary, until we allow fetching key from key storage
        self.key = self.handle.getDefaultKey()
        self.keylocator = KeyLocator(self.key)

        self.prefix = Name(prefixstr)
Пример #2
0
 def __init__(self, *args, **kwargs):
     '''
 Creates a socket. As of now, we try to get the ccnx key from the default location
 '''
     super(CcnxSocket, self).__init__()
     self.ccnx_key = CCN.getDefaultKey()
     self.ccnx_key_locator = pyccn.KeyLocator(self.ccnx_key)
     self.ccnx_handle = CCN()
     self.event_loop = CcnxLoop(self.ccnx_handle)
Пример #3
0
	def __init__(self, base_name, callback, handle=CCN.CCN(), version=None, latest=True):
		# some constants
		self.version_marker = '\xfd'
		self.first_version_marker = self.version_marker
		self.last_version_marker = '\xfe\x00\x00\x00\x00\x00\x00'

		self.base_name = Name.Name(base_name)
		self.callback = callback
		self.handle = handle
		self.latest_version = version if version else self.first_version_marker
		self.start_with_latest = latest
Пример #4
0
#block_size = 1048576
#block_size = 128 * 4096

#fi = open(file, "r")
#fi.seek(100*1024*1024)

#def block():
#	global fi, position, block_size
#	data = fi.read(block_size)
#	return data


import struct, vlc_access
from pyccn import *

h = CCN.CCN()
#base = Name.Name('/movie/%FD%04%E0%ACL%97%60')
base = Name.Name('/testmovie')

def segment(segment):
	return b'\x00' + struct.pack('!Q', segment).lstrip('\x00')

def getSegment(seg):
	global h, base

	name = Name.Name(base)
	name += segment(seg)

	print "Requesting: %s" % name

	co = None
Пример #5
0
from pyccn import CCN, Name

c = CCN()
print(c)

n = Name()
print(n)

n = Name("ccnx:/ccnx/ping")
print(n)

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

#this shouldn't cause segfault
print(n)

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

#this shouldn't cause segfault!
print(co)
Пример #6
0
import time, struct
import pyccn
from pyccn import CCN, Name, Interest, Key, ContentObject, Closure, KeyLocator, ExclusionFilter
from Tyzx import CompositeObject, BaseObject

prefix = "ccnx:/ndn/ucla.edu/apps/tv1/occupants"

DISCOVER_INTEREST_PERIOD = 0.250  # How often
UPDATE_INTEREST_PERIOD = 0.250
CCN_WAIT_TIME_MS = 1

tyzxObjects = {}
oldObjects = set()  # still may be in the content store

ccn = CCN()

interestDiscover = Interest()
interestDiscover.name = Name(prefix)
interestDiscover.minSuffixComponents = 2  # occupant id + the implicit digest at a minimum

interestUpdate = Interest()
interestUpdate.minSuffixComponents = 2  # time (version) + the implicit digest
interestUpdate.childSelector = 1  # rightmost child
#interestUpdate.interestLifetime = ????

lastdiscovertime = 0


def versionFromTime(t):
    bintime = struct.pack("!Q", int(t * 4096 + 0.5))
    version = bintime.lstrip(b'\x00')
Пример #7
0
		print(upcallInfo)

		print("#Receiver# Got response %d" % kind)
		if (kind == 4):
			raise AssertionError("Got timeout")

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

		return pyccn.RESULT_OK

senderclosure = SenderClosure()
receiverclosure = ReceiverClosure()

sender_handle = CCN()
receiver_handle = CCN()

#Looks like the CCNx 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
Пример #8
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 = CCN.CCN()
    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()