Class SystemAccessDescriptor
Accumulator for a system's declared read/write access (RFC 07 — System Access Declarations + Auto-DAG). Populated by SystemBuilder declaration methods, copied into Dag.SystemRegistration, then onto Access at Build(IResource, ILogger) time.
public sealed class SystemAccessDescriptor
- Inheritance
-
SystemAccessDescriptor
- Inherited Members
Remarks
Unit 2 of the auto-DAG migration: storage only. Conflict detection (W×W errors, R×W-plain errors, derived edges) lands in Unit 3. All sets default to empty; entries are deduped automatically by the underlying HashSet<T>. Public so tooling (Workbench Schema Inspector, Profiler topology surfacing — RFC 07 Unit 6) can project the declarations onto its DTO surface without bouncing through reflection.
Constructors
SystemAccessDescriptor()
public SystemAccessDescriptor()
Fields
AdditionalReads
Component types read beyond the system's primary View input (cross-entity reads).
public readonly HashSet<Type> AdditionalReads
Field Value
ExclusivePhase
When true, this system runs alone in its phase — no other system in the same phase may execute concurrently with it (Unit 3 enforces).
public bool ExclusivePhase
Field Value
Reads
Component types declared with b.Reads<T>(). Ambiguous about same-tick freshness — Unit 3 errors if a same-phase writer of T exists.
public readonly HashSet<Type> Reads
Field Value
ReadsEvents
Event queues this system consumes from.
public readonly HashSet<EventQueueBase> ReadsEvents
Field Value
ReadsFresh
Component types declared with b.ReadsFresh<T>(). Reader is ordered AFTER any same-phase writer of T (Unit 3).
public readonly HashSet<Type> ReadsFresh
Field Value
ReadsResources
Named resources this system reads.
public readonly HashSet<string> ReadsResources
Field Value
ReadsSnapshot
Component types declared with b.ReadsSnapshot<T>(). Reader is ordered BEFORE any same-phase writer of T (Unit 3) — sees previous-tick value.
public readonly HashSet<Type> ReadsSnapshot
Field Value
SideWrites
Component types written via Immediate side-transactions. Surfaced in tooling but does NOT affect scheduler ordering.
public readonly HashSet<Type> SideWrites
Field Value
Writes
Component types this system mutates via EntityRef.Write<T>().
public readonly HashSet<Type> Writes
Field Value
WritesEvents
Event queues this system publishes to. Producer→consumer edges are derived in Unit 3.
public readonly HashSet<EventQueueBase> WritesEvents
Field Value
WritesResources
Named resources this system mutates (e.g., a shared physics-world handle).
public readonly HashSet<string> WritesResources
Field Value
Properties
HasAnyDeclaration
Returns true if any access has been declared. Used by Unit 3 to skip conflict detection on undeclared systems during the migration window.
public bool HasAnyDeclaration { get; }