Changeset 391

Show
Ignore:
Timestamp:
01/10/03 00:54:14 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBTelepathy/RBTelepathy/Packet/Builder.py

    r390 r391  
    3232 
    3333class StreamPacketBuilder(XMLClassBuilder): 
    34     def BuildPacket(self, source, info): 
    35         packet = self.Parse(info) 
    36         return packet.OnStreamData 
     34    BuildPacket = XMLClassBuilder.Parse 
    3735 
    3836    def _GetOwner(self): 
  • trunk/RBTelepathy/RBTelepathy/Packet/Elements.py

    r390 r391  
    5555 
    5656    def _xmlInitComplete(self):  
    57         self._datastreamiter = iter(self.datastreams) 
     57        self._OnStreamCurrent = [x for x in self.datastreams] 
    5858 
    59     def OnStreamData(self, source, data): 
    60         for current in self._datastreamiter: 
    61             data = current.OnStreamData(source, data) 
     59    def OnStreamData(self, data, OnPacketComplete=None): 
     60        while self._OnStreamCurrent: 
     61            current = self._OnStreamCurrent[0] 
     62            data = current.OnStreamData(data) 
    6263            if data is None:  
    6364                return None 
    64         del self._datastreamiter 
    65         source.OnPacketComplete(self) 
     65            else: 
     66                self._OnStreamCurrent.pop(0) 
     67        del self._OnStreamCurrent 
     68        if OnPacketComplete is not None: 
     69            OnPacketComplete(self) 
    6670        return data 
    6771 
  • trunk/RBTelepathy/RBTelepathy/Packet/StreamElements.py

    r390 r391  
    6262    def _xmlInitStarted(self):  
    6363        StreamBase._xmlInitStarted(self) 
    64         self.contentlen = int(self._attributes['size']) 
     64        self.ContentLen = int(self._attributes['size']) 
    6565 
    6666    def OnUpdateContent(self): 
     
    6868        self._attributes['size'] = str(len(self.StreamContent)) 
    6969 
    70     def OnStreamData(self, source, data): 
    71         length = self.contentlen - len(self.StreamContent) 
     70    def OnStreamData(self, data): 
     71        length = self.ContentLen - len(self.StreamContent) 
    7272        if length > len(data): 
    7373            self.StreamContent += data 
    7474        else: 
    7575            self.StreamContent += data[:length] 
    76             del self.contentlen 
    7776            return data[length:] 
    7877 
     
    104103        self._attributes['ordinal'] = str(ord(self.terminator)) 
    105104 
    106     def OnStreamData(self, source, data): 
     105    def OnStreamData(self, data): 
    107106        try:  
    108             StreamContent, extra = data.split(self.terminator, 1) 
     107            data, extra = data.split(self.terminator, 1) 
    109108        except ValueError:  
    110109            extra = None 
    111         self.StreamContent += StreamContent 
     110        self.StreamContent += data 
    112111        return extra 
    113112 
  • trunk/RBTelepathy/RBTelepathy/Packet/__init__.py

    r390 r391  
    100100</msg>''' 
    101101 
    102     class _test(object): 
    103         def OnPacketComplete(self, packet): 
    104             self.packet = packet 
     102    def printit(packet): 
     103        print 
     104        print packet.GetStreamInfo() 
     105        print repr(packet.GetStreamData()) 
     106        print 
     107        print 'Stream Content:' 
     108        for each in packet.datastreams: 
     109            print '   ', repr(each.StreamContent) 
     110        print 
    105111 
    106         def printit(self): 
    107             print 
    108             print self.packet.GetStreamInfo() 
    109             print repr(self.packet.GetStreamData()) 
    110             print 
    111             print 'Stream Content:' 
    112             for each in self.packet.datastreams: 
    113                 print '   ', repr(each.StreamContent) 
    114             print 
    115  
    116     t = _test() 
    117     streamhandler = pb.BuildPacket(t, info) 
     112    packet = pb.BuildPacket(info) 
    118113 
    119114    data = '''Some real text\x04ThereAre10@Trash@''' 
    120     streamhandler(t, data) 
     115    packet.OnStreamData(data) 
    121116 
    122     t.printit(
     117    printit(packet
    123118 
    124     newdata = ['New terminated data', 'New lenght-based data'] 
    125     for stream, nd in zip(t.packet.datastreams, newdata): 
     119    newdata = ['New terminated data', 'New length-based data'] 
     120    for stream, nd in zip(packet.datastreams, newdata): 
    126121        stream.StreamContent = nd 
    127122 
    128     t.printit(
     123    printit(packet
    129124 
    130125    print "Test complete."