| @@ -120,6 +120,7 @@ type | |||||
| function Seek(const {%H-}Offset: Int64; {%H-}Origin: TSeekOrigin): Int64; override; overload; | function Seek(const {%H-}Offset: Int64; {%H-}Origin: TSeekOrigin): Int64; override; overload; | ||||
| procedure BeginOperation; | procedure BeginOperation; | ||||
| procedure EndOperation; | procedure EndOperation; | ||||
| procedure Clear; | |||||
| property LockFree: boolean read fLockFree; | property LockFree: boolean read fLockFree; | ||||
| end; | end; | ||||
| @@ -479,23 +480,9 @@ begin | |||||
| end; | end; | ||||
| destructor TutlFIFOStream.Destroy; | destructor TutlFIFOStream.Destroy; | ||||
| var | |||||
| p,q: PPage; | |||||
| begin | begin | ||||
| BeginOperation; | |||||
| try | |||||
| fTotalSize:= 0; | |||||
| fReadPtr:= 0; | |||||
| fWritePtr:= 0; | |||||
| p:= fPageFirst; | |||||
| while p<>nil do begin | |||||
| q:= p; | |||||
| p:= p^.Next; | |||||
| Dispose(q); | |||||
| end; | |||||
| finally | |||||
| EndOperation; | |||||
| end; | |||||
| Clear; | |||||
| Dispose(fPageFirst); | |||||
| FreeAndNil(fDataLock); | FreeAndNil(fDataLock); | ||||
| inherited Destroy; | inherited Destroy; | ||||
| end; | end; | ||||
| @@ -627,6 +614,25 @@ begin | |||||
| fDataLock.Release; | fDataLock.Release; | ||||
| end; | end; | ||||
| procedure TutlFIFOStream.Clear; | |||||
| var | |||||
| p: PPage; | |||||
| begin | |||||
| BeginOperation; | |||||
| try | |||||
| while fPageFirst<>fPageLast do begin | |||||
| p:= fPageFirst; | |||||
| fPageFirst:= fPageFirst^.Next; | |||||
| Dispose(p); | |||||
| end; | |||||
| fTotalSize:= 0; | |||||
| fReadPtr:= 0; | |||||
| fWritePtr:= 0; | |||||
| finally | |||||
| EndOperation; | |||||
| end; | |||||
| end; | |||||
| { TutlBase64Decoder } | { TutlBase64Decoder } | ||||
| function TutlBase64Decoder.{%H-}Read(var Buffer; Count: Longint): Longint; | function TutlBase64Decoder.{%H-}Read(var Buffer; Count: Longint): Longint; | ||||