--- oup/rewrite/DataAccess/DataAccess.pas 2007/02/20 20:43:29 101 +++ oup/current/DataAccess/DataAccess.pas 2007/06/19 22:06:10 227 @@ -1,7 +1,7 @@ unit DataAccess; interface -uses TypeDefs, Classes, StrUtils, SysUtils; +uses TypeDefs, Classes, StrUtils, SysUtils, _MetaManager; type TDataAccess = class @@ -13,6 +13,7 @@ type FDataOS: TDataOS; FLevelNumber: Integer; FChangeRights: TChangeRights; + FMeta: TMetaManager; procedure SetDataOS(DataOS: TDataOS); public property ConnectionID: Integer read FConnectionID; @@ -21,6 +22,7 @@ type property DataOS: TDataOS read FDataOS write SetDataOS; property LevelNumber: Integer read FLevelNumber; property ChangeRights: TChangeRights read FChangeRights; + property MetaData: TMetaManager read FMeta; constructor Create(FileName: String; ConnectionID: Integer; var Msg: TStatusMessages); virtual; abstract; procedure Close; virtual; abstract; @@ -41,9 +43,10 @@ type procedure LoadDatFilePart(FileID, Offset, Size: Integer; var Target: TByteData); overload; procedure LoadDatFilePart(FileID, Offset, Size: Integer; Target: Pointer); overload; procedure UpdateDatFilePart(FileID, Offset, Size: Integer; Src: TStream); overload; virtual; abstract; - procedure UpdateDatFilePart(FileID, Offset, Size: Integer; Src: TByteData); overload; procedure UpdateDatFilePart(FileID, Offset, Size: Integer; Src: Pointer); overload; + function GetDatLinks(FileID: Integer): TDatLinkList; virtual; abstract; + function GetDatLink(FileID, DatOffset: Integer): TDatLink; virtual; abstract; function GetRawList(FileID: Integer): TRawDataList; virtual; abstract; function GetRawInfo(FileID, DatOffset: Integer): TRawDataInfo; virtual; abstract; @@ -55,12 +58,11 @@ type procedure LoadRawFilePart(FileID, DatOffset, Offset, Size: Integer; var Target: TByteData); overload; procedure LoadRawFilePart(FileID, DatOffset, Offset, Size: Integer; Target: Pointer); overload; procedure UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TStream); overload; virtual; abstract; - procedure UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TByteData); overload; procedure UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: Pointer); overload; - function AppendRawFile(LocSep: Boolean; Size: Integer; Src: TStream): Integer; overload; virtual; - function AppendRawFile(LocSep: Boolean; Size: Integer; Src: TByteData): Integer; overload; - function AppendRawFile(LocSep: Boolean; Size: Integer; Src: Pointer): Integer; overload; + function AppendRawFile(LocSep: Boolean; Src: TStream): Integer; overload; virtual; + function AppendRawFile(LocSep: Boolean; Src: TByteData): Integer; overload; +// function AppendRawFile(LocSep: Boolean; Size: Integer; Src: Pointer): Integer; overload; published end; @@ -172,20 +174,6 @@ begin end; end; -procedure TDataAccess.UpdateDatFilePart(FileID, Offset, Size: Integer; Src: TByteData); -var - data: TStream; -begin - if fileid < GetFileCount then - begin - data := TMemoryStream.Create; - data.Write(Src[0], Size); - data.Seek(0, soFromBeginning); - UpdateDatFilePart(FileID, offset, size, data); - data.Free; - end; -end; - procedure TDataAccess.UpdateDatFilePart(FileID, Offset, Size: Integer; Src: Pointer); var data: TStream; @@ -259,20 +247,6 @@ begin end; end; -procedure TDataAccess.UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: TByteData); -var - data: TStream; -begin - if fileid < GetFileCount then - begin - data := TMemoryStream.Create; - data.Write(Src[0], Size); - data.Seek(0, soFromBeginning); - UpdateRawFilePart(FileID, DatOffset, Offset, Size, data); - data.Free; - end; -end; - procedure TDataAccess.UpdateRawFilePart(FileID, DatOffset, Offset, Size: Integer; Src: Pointer); var data: TStream; @@ -288,32 +262,34 @@ begin end; -function TDataAccess.AppendRawFile(LocSep: Boolean; Size: Integer; Src: TStream): Integer; +function TDataAccess.AppendRawFile(LocSep: Boolean; Src: TStream): Integer; begin raise ENotImplemented.Create('ERROR: AppendRawFile not implemented here!!!'); end; -function TDataAccess.AppendRawFile(LocSep: Boolean; Size: Integer; Src: TByteData): Integer; +function TDataAccess.AppendRawFile(LocSep: Boolean; Src: TByteData): Integer; var data: TStream; begin data := TMemoryStream.Create; - data.Write(Src[0], Size); - AppendRawFile(LocSep, Size, data); + data.Write(Src[0], Length(Src)); + data.Seek(0, soFromBeginning); + Result := AppendRawFile(LocSep, data); data.Free; end; - +{ function TDataAccess.AppendRawFile(LocSep: Boolean; Size: Integer; Src: Pointer): Integer; var data: TStream; begin data := TMemoryStream.Create; data.Write(Src^, Size); - AppendRawFile(LocSep, Size, data); + data.Seek(0, soFromBeginning); + Result := AppendRawFile(LocSep, data); data.Free; end; - +} procedure TDataAccess.SetDataOS(DataOS: TDataOS);