class Matter::Device::LifecycleManager

Overview

Wires fabric lifecycle events (commissioning/operational transitions) to:

The device/application can still hook into these events, but does not need to manually persist sessions/subscriptions or manage advertisement state.

Defined in:

matter/device/lifecycle_manager.cr

Constant Summary

Log = ::Log.for("matter.device.lifecycle")

Constructors

Instance Method Summary

Constructor Detail

def self.new(fabric_table : FabricTable, message_handler : Protocol::SessionManager, operational_credentials : Cluster::OperationalCredentialsCluster, responder : MDNS::ResponderInterface, commissioning_info : Proc(MDNS::CommissioningInfo), port : Int32 = 5540, operational_info_factory : Proc(Fabric, MDNS::OperationalInfo) | Nil = nil, fabric_session_cleanup_delay : Time::Span = 1.second) #

[View source]

Instance Method Detail

def commissioned? : Bool #

[View source]
def install! : Nil #

Installs cluster callbacks. Safe to call multiple times.


[View source]
def mode : Mode #

[View source]
def on_commissioned : Proc(Fabric, Nil) | Nil #

Called when transitioning from 0 -> 1 fabrics.


[View source]
def on_commissioned=(on_commissioned : Proc(Fabric, Nil) | Nil) #

Called when transitioning from 0 -> 1 fabrics.


[View source]
def on_decommissioned : Proc(Nil) | Nil #

Called when transitioning from 1 -> 0 fabrics.


[View source]
def on_decommissioned=(on_decommissioned : Proc(Nil) | Nil) #

Called when transitioning from 1 -> 0 fabrics.


[View source]
def on_fabric_added : Proc(Fabric, Nil) | Nil #

Called for every fabric added.


[View source]
def on_fabric_added=(on_fabric_added : Proc(Fabric, Nil) | Nil) #

Called for every fabric added.


[View source]
def on_fabric_removed : Proc(UInt8, Nil) | Nil #

Called for every fabric removed.


[View source]
def on_fabric_removed=(on_fabric_removed : Proc(UInt8, Nil) | Nil) #

Called for every fabric removed.


[View source]
def sync_advertisements : Nil #

Ensures mDNS advertisements match current commissioned state.


[View source]