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
Loggerto 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.
Extensions
-
ControllerEventStreamExtensions
on Stream<
ControllerEvent> - Extension methods for filtering controller event streams.
-
ListDoubleToMessageExtension
on List<
double> -
ListIntToMessageExtension
on List<
int> -
ListStringToStringMessageExtension
on List<
String> -
MapToStringMessageExtension
on Map<
String, dynamic> - NodeCapabilityExtension on NodeCapability
- NodeCapabilityStringExtension on NodeCapability
- StringToStringMessageExtension on String
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
streamthat satisfiestest.
Typedefs
-
Double64Message
= Message<
double, Double64Mapping, MessageType< double, Double64Mapping> > - Double64 Message type alias with Double64Mapping and Double MessageType.
-
Float32Message
= Message<
double, Float32Mapping, MessageType< double, Float32Mapping> > - Float32 Message type alias with Float32Mapping and Double MessageType.
-
Int16Message
= Message<
int, Int16Mapping, MessageType< int, Int16Mapping> > - Int16 Message type alias with Int16Mapping and Int MessageType.
-
Int32Message
= Message<
int, Int32Mapping, MessageType< int, Int32Mapping> > - Int32 Message type alias with Int32Mapping and Int MessageType.
-
Int64Message
= Message<
int, Int64Mapping, MessageType< int, Int64Mapping> > - Int64 Message type alias with Int64Mapping and Int MessageType.
-
Int8Message
= Message<
int, Int8Mapping, MessageType< int, Int8Mapping> > - Int8 Message type alias with Int8Mapping and Int MessageType.
-
StringMessage
= Message<
String, StringMapping, MessageType< String, StringMapping> > - String Message type alias, with StringMapping and String MessageType.