Refactoring

This commit is contained in:
Michael Schimmel
2025-11-01 12:35:19 +01:00
parent 957171f089
commit df12db2595
7 changed files with 13 additions and 20 deletions
+5 -9
View File
@@ -5,7 +5,7 @@ interface
uses
System.SysUtils,
System.SyncObjs,
System.Generics.Collections, // Added for TDictionary
System.Generics.Collections,
Myc.Utils,
Myc.Data.Scalar,
Myc.Data.Series,
@@ -19,7 +19,7 @@ type
vkSeries,
vkRecordSeries,
vkRecord,
vkGenericRecord, // Added
vkGenericRecord,
vkManagedObject,
vkMethod,
vkInterface,
@@ -194,7 +194,6 @@ begin
Result := (FInterface as TVal<TScalarRecord>).Value;
end;
// Added
function TDataValue.AsGenericRecord: IKeywordMapping<TDataValue>;
begin
if (FKind <> vkGenericRecord) then
@@ -265,7 +264,6 @@ begin
TInterlocked.CompareExchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64, Expected.AsScalar.Value.AsInt64)
= Expected.AsScalar.Value.AsInt64;
// Added vkGenericRecord
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
Result := IntfCompareExchange(FInterface, NewValue.FInterface, Expected.FInterface) = Expected.FInterface;
end;
@@ -302,7 +300,6 @@ begin
Result.FInterface := TVal<TScalarRecord>.Create(AValue);
end;
// Added
class function TDataValue.FromGenericRecord(const AValue: IKeywordMapping<TDataValue>): TDataValue;
begin
Result.FKind := vkGenericRecord;
@@ -367,7 +364,6 @@ begin
end;
vkPointer: Result := TInterlocked.Exchange(FScalar.Value.AsInt64, NewValue.AsScalar.Value.AsInt64);
// Added vkGenericRecord
vkText, vkSeries, vkRecordSeries, vkRecord, vkGenericRecord, vkManagedObject, vkMethod, vkInterface, vkGeneric:
begin
Result.FKind := FKind;
@@ -380,7 +376,7 @@ function TDataValue.ToString: String;
var
sb: TStringBuilder;
field: TScalarRecordField;
genField: TPair<IKeyword, TDataValue>; // Added
genField: TPair<IKeyword, TDataValue>;
first: Boolean;
begin
case FKind of
@@ -434,7 +430,7 @@ begin
sb.Free;
end;
end;
// Added
vkGenericRecord:
begin
var rec := AsGenericRecord;
@@ -513,7 +509,7 @@ begin
vkSeries: Result := 'Series';
vkRecordSeries: Result := 'RecordSeries';
vkRecord: Result := 'Record';
vkGenericRecord: Result := 'GenericRecord'; // Added
vkGenericRecord: Result := 'GenericRecord';
vkMethod: Result := 'Method';
vkInterface: Result := 'Interface';
vkPointer: Result := 'Pointer';