18
18
19
19
#pragma once
20
20
#include < app-common/zap-generated/cluster-objects.h>
21
+ #include < app/AttributePathParams.h>
22
+ #include < app/ClusterStateCache.h>
21
23
#include < app/OperationalSessionSetup.h>
22
24
#include < controller/CommissioneeDeviceProxy.h>
23
25
#include < credentials/attestation_verifier/DeviceAttestationDelegate.h>
24
26
#include < credentials/attestation_verifier/DeviceAttestationVerifier.h>
25
27
#include < crypto/CHIPCryptoPAL.h>
28
+ #include < lib/support/Span.h>
26
29
#include < lib/support/Variant.h>
27
30
#include < matter/tracing/build_config.h>
28
31
#include < system/SystemClock.h>
@@ -573,6 +576,18 @@ class CommissioningParameters
573
576
}
574
577
void ClearICDStayActiveDurationMsec () { mICDStayActiveDurationMsec .ClearValue (); }
575
578
579
+ Span<const app::AttributePathParams> GetExtraReadPaths () const { return mExtraReadPaths ; }
580
+
581
+ // Additional attribute paths to read as part of the kReadCommissioningInfo stage.
582
+ // These values read from the device will be available in ReadCommissioningInfo.attributes.
583
+ // Clients should avoid requesting paths that are already read internally by the commissioner
584
+ // as no consolidation of internally read and extra paths provided here will be performed.
585
+ CommissioningParameters & SetExtraReadPaths (Span<const app::AttributePathParams> paths)
586
+ {
587
+ mExtraReadPaths = paths;
588
+ return *this ;
589
+ }
590
+
576
591
// Clear all members that depend on some sort of external buffer. Can be
577
592
// used to make sure that we are not holding any dangling pointers.
578
593
void ClearExternalBufferDependentValues ()
@@ -595,6 +610,7 @@ class CommissioningParameters
595
610
mDSTOffsets .ClearValue ();
596
611
mDefaultNTP .ClearValue ();
597
612
mICDSymmetricKey .ClearValue ();
613
+ mExtraReadPaths = decltype (mExtraReadPaths )();
598
614
}
599
615
600
616
private:
@@ -643,6 +659,7 @@ class CommissioningParameters
643
659
Optional<uint32_t > mICDStayActiveDurationMsec ;
644
660
ICDRegistrationStrategy mICDRegistrationStrategy = ICDRegistrationStrategy::kIgnore ;
645
661
bool mCheckForMatchingFabric = false ;
662
+ Span<const app::AttributePathParams> mExtraReadPaths ;
646
663
};
647
664
648
665
struct RequestedCertificate
@@ -743,6 +760,7 @@ struct ICDManagementClusterInfo
743
760
744
761
struct ReadCommissioningInfo
745
762
{
763
+ app::ClusterStateCache const * attributes = nullptr ;
746
764
NetworkClusters network;
747
765
BasicClusterInfo basic;
748
766
GeneralCommissioningInfo general;
0 commit comments