framework library

Moved to package:peer_coordinator/framework.dart.

Re-exported so existing imports keep working; prefer importing from package:peer_coordinator directly in new code.

Classes

AlwaysMatch
Matches every peer.
AndQuery
Conjunction. An empty terms matches everything.
ClockOffsetEstimate
One accepted estimate of a peer's clock relative to ours.
ClockProbeSample
One probe's four timestamps, in the two clock domains they were read in.
ClockSyncConfig
Tuning for PeerClockEstimator, defaulting to liblsl's [tuning] section.
ClockSyncSample
One clock-offset estimate for one peer, as the transport measured it.
ClockSyncService
Drives PeerClockEstimators on timers and sends probes through a callback.
ConfigUpdateEvent
Configuration update from coordinator.
ConfigUpdateMessage
ConnectionTestMessage
ConnectionTestResponseMessage
ControllerEvent
Sealed hierarchy for coordination controller events.
CoordinationController
Controls the coordination flow with clear phases and event-driven logic.
CoordinationMessage
Base class for coordination messages with type safety
CoordinationMessageHandler
Base class for handling coordination messages
CoordinationSendHealthEvent
Emitted when this node's own outbound coordination path changes health.
CoordinationSession
Abstract base class for coordination sessions.
CoordinationSessionConfig
CoordinationSessionConfigFactory
CoordinationState
Internal coordination state with clear phase management.
CoordinationStream<T extends CoordinationStreamConfig, M extends StringMessage>
A coordination stream used for network coordination tasks.
CoordinationStreamConfig
Configuration for a coordination stream used for network coordination tasks.
CoordinationStreamConfigFactory
Factory for creating coordination stream configurations.
CoordinatorMessageHandler
Handles coordination when this node is the coordinator
CoordinatorNode
Coordinator nodes can coordinate the network, and may also participate in data streams (if they have the capability).
CreateStreamMessage
DataStream<T extends DataStreamConfig, M extends IMessage<IMessageType>>
A data stream used for transmitting actual data samples.
DataStreamConfig
DataStreamConfigFactory
DestroyStreamMessage
DiscoveryEvent
Something a discovery instance reports.
DiscoveryQuery
A transport-neutral peer filter.
DiscoveryTimeoutEvent
A bounded discovery gave up before finding what it was asked for.
Double64Mapping
Implementation of a IMessageType for double64 data.
FieldMatch
Compares one PeerField against value.
Float32Mapping
Implementation of a IMessageType for float32 data.
FlushStreamMessage
HeartbeatMessage
HierarchicalTopologyConfig
HierarchicalTopologyConfigFactory
IAuthenticatedTransport
A transport that must prove an identity to something remote.
IConfig
Interface for configuration classes.
IConfigFactory<T extends IConfig>
Factory interface for creating configurations.
IConfigurable<T extends IConfig>
Interface for classes that can be configured with an IConfig implementation.
IDiscovery
Finds peers on the network.
IHasMetadata
IIdentity
Basic identity interface
IInitializable
Interface for classes that can be initialized.
IJoinable
Interface for classes that can join and leave.
ILifecycle
Interface for managing the lifecycle of an object.
IMessage<T extends IMessageType>
Interface representing a message with a specific type and associated data.
IMessageType<T>
Interface representing a message type with specific data characteristics.
Int16Mapping
Implementation of a IMessageType for int16 data.
Int32Mapping
Implementation of a IMessageType for int32 data.
Int64Mapping
Implementation of a IMessageType for int64 data.
Int8Mapping
implementation of a IMessageType for int8 data.
IntMessageTypeMapping
IPausable
Interface for classes that can be paused and resumed.
IResource
IResourceManager
ISerializable
ITimestamped
Interface for classes that have a timestamp.
ITransport<T extends ITransportConfig>
Interface for all transport implementations.
ITransportConfig
Interface for all transport configurations.
IUniqueIdentity
Interface for classes that have a globally unique identity.
JoinAcceptMessage
JoinOfferMessage
JoinRejectMessage
JoinRequestMessage
Log
Logging for the coordination layer.
LogRecord
A log entry representation used to propagate information from Logger to individual handlers.
ManagedResource
A resource with a create/dispose lifecycle and single-owner semantics.
Message<D, M extends MessageTypeMapping<D>, T extends MessageType<D, M>>
Implementation of a message with specific data and type.
MessageFactory
Factory for creating messages of various types.
MessageTiming
Receive-side timing for a single message, as the transport observed it.
MessageType<T, M extends MessageTypeMapping<T>>
Generic reusable message type wrapper for a specific data type Type and MessageTypeMapping.
MessageTypeMapping<T>
Base mapping class for message types.
NetworkStream<T extends NetworkStreamConfig, M extends IMessage<IMessageType>>
Configuration for a coordination session used to manage network nodes.
NetworkStreamConfig
Base class for all network stream configurations.
NetworkStreamFactory<TSession extends CoordinationSession>
Creates network streams.
Node
Configuration for the LSL transport.
NodeConfig
NodeConfigFactory
Factory for creating NodeConfig objects.
NodeEvent
Base class for node-related events.
NodeFactory
NodeJoinedEvent
Emitted when a node joins the coordination session.
NodeJoinRejectedEvent
Emitted (coordinator side) when a node's join request is rejected.
NodeLeavingMessage
NodeLeftEvent
Emitted when a node leaves the coordination session.
NotQuery
Negation.
ObserverNode
A node that does not participate in the network at all. Observer nodes can only observe the network, and cannot participate in sending data or and cannot coordinate. They can receive coordination messages, but cannot send them.
OrQuery
Disjunction. An empty terms matches nothing.
ParticipantMessageHandler
Handles coordination when this node is a participant
ParticipantNode
Participant nodes can produce and consume data, but cannot participate in coordination (but will receive coordination messages).
PauseStreamMessage
PeerClock
A process-local monotonic clock, mirroring the contract of LSL's lsl_local_clock().
PeerClockEstimator
Collects probe replies for one peer and reduces each burst to one estimate.
PeerClockOffsets
Per-peer clock offsets for one process, shared by every stream on a transport.
PeerDescriptor
A peer discovered on the network, described in transport-neutral terms.
PeerHandle
A discovered peer, together with whatever transport-owned resource is needed to actually connect to it.
PeerMetadataKeys
Keys for the node metadata the coordination layer itself reads.
PeerQueries
Builders for the queries the coordination layer actually issues.
PeerRegistry
The set of peers currently reachable on a relay-style transport.
PeersDiscoveredEvent
One or more peers matched.
PeerSession
A coordination session, independent of any transport.
PhaseChangedEvent
Emitted when the coordination phase changes.
PromotionStrategy
Promotion strategy
PromotionStrategyFirst
PromotionStrategyRandom
RegistryDelta
A change to the set of registered peers.
RelayNode
Relay nodes can relay data between nodes, but cannot produce or consume data (non-relayed) themselves.
RelayRouting
Who receives what, on a relay-style transport.
ResumeStreamMessage
SessionEndedEvent
Emitted when this node's coordination session has ended.
SessionEndMessage
The coordinator telling nodes that the session is over for them.
SessionRejoinedEvent
Emitted when a node that lost its coordinator has re-joined one.
StartStreamMessage
StopStreamMessage
StreamCreateEvent
Command to create a data stream.
StreamDestroyEvent
Command to destroy a data stream.
StreamFlushEvent
Command to flush stream buffers.
StreamLifecycleEvent
Base class for stream lifecycle events.
StreamPauseEvent
Command to pause a data stream.
StreamReadyEvent
Notification that a stream is ready for operation.
StreamReadyMessage
StreamResumeEvent
Command to resume a paused data stream.
StreamStartEvent
Command to start a data stream.
StreamStopEvent
Command to stop a data stream.
StringMapping
implementation of a IMessageType for string data.
TopologyConfig
Represents the network topology used in the coordinator system. Currently, only hierarchical topology is supported.
TopologyUpdateMessage
TransformerNode
Transformer nodes are a special case of relay nodes that can also transform data as it passes through them.
UserCoordinationEvent
User message from coordinator (broadcast to all).
UserCoordinationMessage
UserMessageEvent
Base class for user-defined message events.
UserParticipantEvent
User message from participant (to coordinator).
UserParticipantMessage
Uuid
uuid for Dart Author: Yulian Kuncheff Released under MIT License.
UuidValue

Enums

CoordinationMessageType
Base coordination message types
CoordinationPhase
Represents the current state of coordination
CoordinatorLossPolicy
What a node does when the coordinator goes away.
MatchOp
How a FieldMatch compares a field to its value.
Namespace
RFC4122 & RFC9562 provided namespaces for v3, v5, and v8 namespace based UUIDs
NodeCapability
Represents the type of a node in the network. Type, in this case means essentially the MAXIMUM privileges and capabilities of the node in the network. An observer node, will never be allowed to produce data, while a coordinator node will be able to produce coordination messages, but will not be able to produce data in data streams.
PeerField
A field of a PeerDescriptor that a DiscoveryQuery can filter on.
RegistryChange
How a registered peer changed.
SessionEndReason
Why a session ended, as carried by SessionEndedEvent and SessionEndMessage.
StreamDataType
StreamParticipationMode
Defines who should participate in a data stream
ValidationMode
The options for UUID Validation strictness

Mixins

ConnectionProbeMixin
The connection-test round trip, shared by both roles.
InstanceUID
Mixin for per-instance unique IDs
RuntimeTypeUID
Mixin that provides automatic unique ID generation based on the runtime type.

Properties

logger → Logger
no setter

Functions

generateUid() → String
The default function to generate a unique ID. Uses the Uuid package to generate a version 4 UUID. This is a convenience function and Uuid is re-exported for direct use if needed.
resolveManagerUpdate({required IResourceManager? current, required IResourceManager? next, required bool disposed}) → IResourceManager?
Applies the single-owner rule for IResource.updateManager and returns the manager the resource should now hold.
waitForEvent<T>(Stream<T> stream, bool test(T event), {Duration? timeout, String? description}) → Future<T>
Waits for the first event on stream that satisfies test.