Data file handling

This commit is contained in:
Michael Schimmel
2025-06-15 17:29:56 +02:00
parent bbd9d1752a
commit 2c56f6e750
7 changed files with 578 additions and 357 deletions
+4 -4
View File
@@ -25,7 +25,7 @@ type
end;
// A state that acts as an event. It's state ist always set and it will always Trigger it's subscribers, if it gets notified by itself.
TMycEvent = class(TInterfacedObject, TSignal.ISignal, TEvent.IEvent)
TMycEvent = class(TInterfacedObject, TSignal.ISubscriber, TSignal.ISignal, TEvent.IEvent)
strict private
FSubscribers: TMycNotifyList<TSignal.ISubscriber>;
protected
@@ -49,7 +49,7 @@ type
// It is initialized with a count. Calls to its Notify method (as an TSignal.ISubscriber)
// decrement this count. When the count reaches zero, the latch transitions to the "set"
// state (IsSet becomes true), notifies its current subscribers once, and then remains set.
TMycLatch = class(TInterfacedObject, TState.IState, TLatch.ILatch)
TMycLatch = class(TInterfacedObject, TSignal.ISubscriber, TSignal.ISignal, TState.IState, TLatch.ILatch)
strict private
FSubscribers: TMycNotifyList<TSignal.ISubscriber>; // List of subscribers waiting for this latch to be set.
private
@@ -74,7 +74,7 @@ type
function Notify: Boolean;
end;
TMycNullLatch = class(TInterfacedObject, TLatch.ILatch)
TMycNullLatch = class(TInterfacedObject, TSignal.ISubscriber, TLatch.ILatch)
private
function GetState: TState;
function Notify: Boolean;
@@ -83,7 +83,7 @@ type
// TMycFlag implements a resettable "dirty flag".
// It can be explicitly set to dirty (via Notify) or reset to clean (via Reset).
// Subscribers are notified of relevant state changes.
TMycFlag = class(TInterfacedObject, TState.IState, TFlag.IFlag)
TMycFlag = class(TInterfacedObject, TSignal.ISubscriber, TSignal.ISignal, TState.IState, TFlag.IFlag)
strict private
FSubscribers: TMycNotifyList<TSignal.ISubscriber>; // List of subscribers interested in state changes of this dirty flag.
private