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)
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)
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
#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
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)
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')
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
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()