Changeset 173 for CoolStreaming/UVarBlockSerializer.pas
- Timestamp:
- Feb 23, 2011, 7:42:22 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
CoolStreaming/UVarBlockSerializer.pas
r172 r173 93 93 procedure Clear; 94 94 function TestIndex(Index: Integer): Boolean; 95 procedure WriteToVarBlock( Stream: TVarBlockSerializer);96 procedure ReadFromVarBlock( Stream: TVarBlockSerializer);95 procedure WriteToVarBlock(VarBlock: TVarBlockSerializer); 96 procedure ReadFromVarBlock(VarBlock: TVarBlockSerializer); 97 97 procedure WriteToStream(Stream: TStream); 98 98 procedure ReadFromStream(Stream: TStream); … … 533 533 Temp := TVarBlockSerializer.Create; 534 534 StreamHelper := TStreamHelper.Create(Stream); 535 Stream.Position := 0; 535 536 ReadVarBlock(Temp); 536 537 Stream.Size := 0; … … 757 758 end; 758 759 759 procedure TVarBlockIndexed.WriteToVarBlock( Stream: TVarBlockSerializer);760 procedure TVarBlockIndexed.WriteToVarBlock(VarBlock: TVarBlockSerializer); 760 761 var 761 762 Mask: Integer; … … 764 765 begin 765 766 try 766 StreamHelper := TStreamHelper.Create( Stream.Stream);767 Stream.Stream.Size := 0;767 StreamHelper := TStreamHelper.Create(VarBlock.Stream); 768 VarBlock.Stream.Size := 0; 768 769 Mask := 0; 769 770 for I := 0 to Items.Count - 1 do 770 771 if Assigned(Items[I]) then Mask := Mask or (1 shl I); 771 Stream.WriteVarUInt(Mask);772 VarBlock.WriteVarUInt(Mask); 772 773 for I := 0 to Items.Count - 1 do 773 774 if Assigned(Items[I]) then StreamHelper.WriteStream(TVarBlockSerializer(Items[I]).Stream, 774 775 TVarBlockSerializer(Items[I]).Stream.Size); 775 if Enclose then Stream.BlockEnclose;776 if Enclose then VarBlock.BlockEnclose; 776 777 finally 777 778 StreamHelper.Free; … … 779 780 end; 780 781 781 procedure TVarBlockIndexed.ReadFromVarBlock( Stream: TVarBlockSerializer);782 procedure TVarBlockIndexed.ReadFromVarBlock(VarBlock: TVarBlockSerializer); 782 783 var 783 784 Mask: Integer; 784 785 I: Integer; 785 786 begin 786 if Enclose then Stream.BlockUnclose;787 Stream.Stream.Position := 0;788 Mask := Stream.ReadVarUInt;787 if Enclose then VarBlock.BlockUnclose; 788 VarBlock.Stream.Position := 0; 789 Mask := VarBlock.ReadVarUInt; 789 790 I := 0; 790 791 while Mask <> 0 do begin 791 if Stream.TestMask(Mask, I) then begin792 if VarBlock.TestMask(Mask, I) then begin 792 793 if Items.Count <= I then Items.Count := I + 1; 793 794 Items[I] := TVarBlockSerializer.Create; 794 Stream.ReadItemByMaskIndex(I, TVarBlockSerializer(Items[I]));795 VarBlock.ReadItemByMaskIndex(I, TVarBlockSerializer(Items[I])); 795 796 Mask := Mask xor (1 shl I); // Clear bit on current index 796 797 end;
Note:
See TracChangeset
for help on using the changeset viewer.