* [TutlSettings] only use vfs when $USE_VFS is definedmaster
| @@ -78,7 +78,7 @@ var | |||
| implementation | |||
| uses | |||
| uutlExceptions, Forms, uvfsManager, uutlMessages, syncobjs; | |||
| uutlExceptions, Forms{$IFDEF USE_VFS}, uvfsManager{$ENDIF}, uutlMessages, syncobjs; | |||
| const | |||
| SETTINGS_MSG_WAIT_TIME = 1000; //ms | |||
| @@ -317,6 +317,7 @@ begin | |||
| fBlocks.ValueAt[i].Instance.SaveToConfig(aMcf.Section(fBlocks.Keys[i])); | |||
| end; | |||
| {$IFDEF USE_VFS} | |||
| procedure TutlSettings.LoadFromFile(const aFile: string); | |||
| var | |||
| sh: IStreamHandle; | |||
| @@ -331,7 +332,24 @@ begin | |||
| end; | |||
| end; | |||
| end; | |||
| {$ELSE} | |||
| procedure TutlSettings.LoadFromFile(const aFile: string); | |||
| var | |||
| fs: TFileStream; | |||
| mcf: TutlMCFFile; | |||
| begin | |||
| fs := TFileStream.Create(aFile, fmOpenRead); | |||
| mcf := TutlMCFFile.Create(nil); | |||
| try | |||
| mcf.LoadFromStream(fs); | |||
| LoadFromConfig(mcf); | |||
| finally | |||
| FreeAndNil(fs); | |||
| end; | |||
| end; | |||
| {$ENDIF} | |||
| {$IFDEF USE_VFS} | |||
| procedure TutlSettings.SaveToFile(const aFile: string); | |||
| var | |||
| sh: IStreamHandle; | |||
| @@ -347,6 +365,23 @@ begin | |||
| end; | |||
| end; | |||
| end; | |||
| {$ELSE} | |||
| procedure TutlSettings.SaveToFile(const aFile: string); | |||
| var | |||
| fs: TFileStream; | |||
| mcf: TutlMCFFile; | |||
| begin | |||
| fs := TFileStream.Create(aFile, fmCreate); | |||
| mcf := TutlMCFFile.Create(nil); | |||
| try | |||
| SaveToConfig(mcf); | |||
| mcf.SaveToStream(fs); | |||
| finally | |||
| FreeAndNil(mcf); | |||
| FreeAndNil(fs); | |||
| end; | |||
| end; | |||
| {$ENDIF} | |||
| constructor TutlSettings.Create; | |||
| begin | |||
| @@ -81,11 +81,12 @@ type | |||
| FBufferValid: boolean; | |||
| FBufferStart, FBufferLen, FBufferAvail: Int64; | |||
| FPosition: int64; | |||
| FOwnsStream: Boolean; | |||
| protected | |||
| function GetSize: Int64; override; | |||
| procedure SetSize(const NewSize: Int64); override; | |||
| public | |||
| constructor Create(const BaseStream: TStream; const BufferSize: Cardinal); | |||
| constructor Create(const BaseStream: TStream; const BufferSize: Cardinal; const aOwnsStream: Boolean = false); | |||
| destructor Destroy; override; | |||
| function Read(var Buffer; Count: Integer): Integer; override; | |||
| function Write(const Buffer; Count: Integer): Integer; override; | |||
| @@ -379,19 +380,22 @@ end; | |||
| { TutlReadBufferStream } | |||
| constructor TutlReadBufferStream.Create(const BaseStream: TStream; const BufferSize: Cardinal); | |||
| constructor TutlReadBufferStream.Create(const BaseStream: TStream; const BufferSize: Cardinal; | |||
| const aOwnsStream: Boolean); | |||
| begin | |||
| inherited Create; | |||
| FBaseStream:= BaseStream; | |||
| FBufferLen:= BufferSize; | |||
| FBuffer:= GetMemory(FBufferLen); | |||
| FOwnsStream := aOwnsStream; | |||
| FPosition:= 0; | |||
| end; | |||
| destructor TutlReadBufferStream.Destroy; | |||
| begin | |||
| FBufferValid:= false; | |||
| //FBaseStream.Free; | |||
| if (FOwnsStream) then | |||
| FBaseStream.Free; | |||
| FreeMemory(FBuffer); | |||
| inherited; | |||
| end; | |||