Skip to content

Commit 2632405

Browse files
bzbarsky-applepull[bot]
authored andcommitted
Add a config variable for disabling platform KVS. (#17777)
Implement support for doing that on Darwin, and enable that support when building the Darwin framework, via either Xcode or chip-tool-darwin.
1 parent ca4bae4 commit 2632405

12 files changed

+143
-24
lines changed

examples/chip-tool-darwin/.gn

+2
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ check_system_includes = true
2222

2323
default_args = {
2424
import("//args.gni")
25+
26+
chip_disable_platform_kvs = true
2527
}

examples/chip-tool-darwin/commands/common/CHIPCommandBridge.mm

-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
auto params = [[MatterControllerFactoryParams alloc] initWithStorage:storage];
4444
params.port = @(kListenPort);
4545
params.startServer = YES;
46-
params.kvsPath = @("/tmp/chip_kvs_darwin");
4746

4847
if ([factory startup:params] == NO) {
4948
ChipLogError(chipTool, "Controller factory startup failed");

src/darwin/Framework/CHIP/MatterControllerFactory.h

-5
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,6 @@ NS_ASSUME_NONNULL_BEGIN
5656
* connections. Defaults to NO.
5757
*/
5858
@property (nonatomic) BOOL startServer;
59-
/*
60-
* Path to a file to use for backing our KVS storage. This should not
61-
* be used, generally; it will be removed soon. Defaults to nil.
62-
*/
63-
@property (strong, nonatomic, nullable) NSString * kvsPath;
6459

6560
- (instancetype)init NS_UNAVAILABLE;
6661
- (instancetype)initWithStorage:(id<CHIPPersistentStorageDelegate>)storageDelegate;

src/darwin/Framework/CHIP/MatterControllerFactory.mm

-11
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
static NSString * const kErrorAttestationTrustStoreInit = @"Init failure while creating the attestation trust store";
4242
static NSString * const kInfoFactoryShutdown = @"Shutting down the Matter controller factory";
4343
static NSString * const kErrorGroupProviderInit = @"Init failure while initializing group data provider";
44-
static NSString * const kErrorKVSInit = @"Init Key Value Store failure";
4544
static NSString * const kErrorControllersInit = @"Init controllers array failure";
4645
static NSString * const kErrorControllerFactoryInit = @"Init failure while initializing controller factory";
4746

@@ -179,15 +178,6 @@ - (BOOL)startup:(MatterControllerFactoryParams *)startupParams
179178

180179
[CHIPControllerAccessControl init];
181180

182-
if (startupParams.kvsPath != nil) {
183-
// TODO: We should stop needing a KeyValueStoreManager on the client side, then remove this code.
184-
CHIP_ERROR errorCode = DeviceLayer::PersistedStorage::KeyValueStoreMgrImpl().Init([startupParams.kvsPath UTF8String]);
185-
if (errorCode != CHIP_NO_ERROR) {
186-
CHIP_LOG_ERROR("Error: %@", kErrorKVSInit);
187-
return;
188-
}
189-
}
190-
191181
_persistentStorageDelegateBridge = new CHIPPersistentStorageDelegateBridge(startupParams.storageDelegate);
192182
if (_persistentStorageDelegateBridge == nil) {
193183
CHIP_LOG_ERROR("Error: %@", kErrorPersistentStorageInit);
@@ -468,7 +458,6 @@ - (instancetype)initWithStorage:(id<CHIPPersistentStorageDelegate>)storageDelega
468458
_paaCerts = nil;
469459
_port = nil;
470460
_startServer = NO;
471-
_kvsPath = nil;
472461

473462
return self;
474463
}

src/darwin/Framework/chip_xcode_build_connector.sh

+1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ declare -a args=(
9696
'chip_crypto="mbedtls"'
9797
'chip_build_tools=false'
9898
'chip_build_tests=false'
99+
'chip_disable_platform_kvs=true'
99100
'target_cpu="'"$target_cpu"'"'
100101
'target_defines='"$target_defines"
101102
'target_cflags=['"$target_cflags"']'

src/platform/BUILD.gn

+1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ if (chip_device_platform != "none" && chip_device_platform != "external") {
108108
"CHIP_STACK_LOCK_TRACKING_ERROR_FATAL=${chip_stack_lock_tracking_fatal}",
109109
"CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING=${chip_enable_additional_data_advertising}",
110110
"CHIP_DEVICE_CONFIG_RUN_AS_ROOT=${chip_device_config_run_as_root}",
111+
"CHIP_DISABLE_PLATFORM_KVS=${chip_disable_platform_kvs}",
111112
]
112113

113114
if (chip_device_platform == "linux" || chip_device_platform == "darwin" ||

src/platform/Darwin/BUILD.gn

+7-2
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ static_library("Darwin") {
5555
"DnssdImpl.cpp",
5656
"DnssdImpl.h",
5757
"InetPlatformConfig.h",
58-
"KeyValueStoreManagerImpl.h",
59-
"KeyValueStoreManagerImpl.mm",
6058
"Logging.cpp",
6159
"MdnsError.cpp",
6260
"MdnsError.h",
@@ -68,6 +66,13 @@ static_library("Darwin") {
6866
"SystemTimeSupport.cpp",
6967
]
7068

69+
if (chip_disable_platform_kvs == false) {
70+
sources += [
71+
"KeyValueStoreManagerImpl.h",
72+
"KeyValueStoreManagerImpl.mm",
73+
]
74+
}
75+
7176
deps = [
7277
"${chip_root}/src/lib/dnssd:platform_header",
7378
"${chip_root}/src/setup_payload",

src/platform/Darwin/ConfigurationManagerImpl.cpp

+116
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ ConfigurationManagerImpl & ConfigurationManagerImpl::GetDefaultInstance()
151151

152152
CHIP_ERROR ConfigurationManagerImpl::Init()
153153
{
154+
#if CHIP_DISABLE_PLATFORM_KVS
155+
return CHIP_NO_ERROR;
156+
#else // CHIP_DISABLE_PLATFORM_KVS
154157
// Initialize the generic implementation base class.
155158
ReturnErrorOnFailure(Internal::GenericConfigurationManagerImpl<PosixConfig>::Init());
156159

@@ -199,6 +202,7 @@ CHIP_ERROR ConfigurationManagerImpl::Init()
199202
}
200203

201204
return CHIP_NO_ERROR;
205+
#endif // CHIP_DISABLE_PLATFORM_KVS
202206
}
203207

204208
CHIP_ERROR ConfigurationManagerImpl::GetPrimaryWiFiMACAddress(uint8_t * buf)
@@ -232,56 +236,99 @@ void ConfigurationManagerImpl::InitiateFactoryReset()
232236

233237
CHIP_ERROR ConfigurationManagerImpl::GetVendorId(uint16_t & vendorId)
234238
{
239+
#if CHIP_DISABLE_PLATFORM_KVS
240+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
241+
#else // CHIP_DISABLE_PLATFORM_KVS
235242
return ReadConfigValue(PosixConfig::kConfigKey_VendorId, vendorId);
243+
#endif // CHIP_DISABLE_PLATFORM_KVS
236244
}
237245

238246
CHIP_ERROR ConfigurationManagerImpl::GetProductId(uint16_t & productId)
239247
{
248+
#if CHIP_DISABLE_PLATFORM_KVS
249+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
250+
#else // CHIP_DISABLE_PLATFORM_KVS
240251
return ReadConfigValue(PosixConfig::kConfigKey_ProductId, productId);
252+
#endif // CHIP_DISABLE_PLATFORM_KVS
241253
}
242254

243255
CHIP_ERROR ConfigurationManagerImpl::StoreVendorId(uint16_t vendorId)
244256
{
257+
#if CHIP_DISABLE_PLATFORM_KVS
258+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
259+
#else // CHIP_DISABLE_PLATFORM_KVS
245260
return WriteConfigValue(PosixConfig::kConfigKey_VendorId, vendorId);
261+
#endif // CHIP_DISABLE_PLATFORM_KVS
246262
}
247263

248264
CHIP_ERROR ConfigurationManagerImpl::StoreProductId(uint16_t productId)
249265
{
266+
#if CHIP_DISABLE_PLATFORM_KVS
267+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
268+
#else // CHIP_DISABLE_PLATFORM_KVS
250269
return WriteConfigValue(PosixConfig::kConfigKey_ProductId, productId);
270+
#endif // CHIP_DISABLE_PLATFORM_KVS
251271
}
252272

253273
CHIP_ERROR ConfigurationManagerImpl::GetRebootCount(uint32_t & rebootCount)
254274
{
275+
#if CHIP_DISABLE_PLATFORM_KVS
276+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
277+
#else // CHIP_DISABLE_PLATFORM_KVS
255278
return ReadConfigValue(PosixConfig::kCounterKey_RebootCount, rebootCount);
279+
#endif // CHIP_DISABLE_PLATFORM_KVS
256280
}
257281

258282
CHIP_ERROR ConfigurationManagerImpl::StoreRebootCount(uint32_t rebootCount)
259283
{
284+
#if CHIP_DISABLE_PLATFORM_KVS
285+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
286+
#else // CHIP_DISABLE_PLATFORM_KVS
260287
return WriteConfigValue(PosixConfig::kCounterKey_RebootCount, rebootCount);
288+
#endif // CHIP_DISABLE_PLATFORM_KVS
261289
}
262290

263291
CHIP_ERROR ConfigurationManagerImpl::GetTotalOperationalHours(uint32_t & totalOperationalHours)
264292
{
293+
#if CHIP_DISABLE_PLATFORM_KVS
294+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
295+
#else // CHIP_DISABLE_PLATFORM_KVS
265296
return ReadConfigValue(PosixConfig::kCounterKey_TotalOperationalHours, totalOperationalHours);
297+
#endif // CHIP_DISABLE_PLATFORM_KVS
266298
}
267299

268300
CHIP_ERROR ConfigurationManagerImpl::StoreTotalOperationalHours(uint32_t totalOperationalHours)
269301
{
302+
#if CHIP_DISABLE_PLATFORM_KVS
303+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
304+
#else // CHIP_DISABLE_PLATFORM_KVS
270305
return WriteConfigValue(PosixConfig::kCounterKey_TotalOperationalHours, totalOperationalHours);
306+
#endif // CHIP_DISABLE_PLATFORM_KVS
271307
}
272308

273309
CHIP_ERROR ConfigurationManagerImpl::GetBootReason(uint32_t & bootReason)
274310
{
311+
#if CHIP_DISABLE_PLATFORM_KVS
312+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
313+
#else // CHIP_DISABLE_PLATFORM_KVS
275314
return ReadConfigValue(PosixConfig::kCounterKey_BootReason, bootReason);
315+
#endif // CHIP_DISABLE_PLATFORM_KVS
276316
}
277317

278318
CHIP_ERROR ConfigurationManagerImpl::StoreBootReason(uint32_t bootReason)
279319
{
320+
#if CHIP_DISABLE_PLATFORM_KVS
321+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
322+
#else // CHIP_DISABLE_PLATFORM_KVS
280323
return WriteConfigValue(PosixConfig::kCounterKey_BootReason, bootReason);
324+
#endif // CHIP_DISABLE_PLATFORM_KVS
281325
}
282326

283327
CHIP_ERROR ConfigurationManagerImpl::GetRegulatoryLocation(uint8_t & location)
284328
{
329+
#if CHIP_DISABLE_PLATFORM_KVS
330+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
331+
#else // CHIP_DISABLE_PLATFORM_KVS
285332
uint32_t value = 0;
286333

287334
CHIP_ERROR err = ReadConfigValue(PosixConfig::kConfigKey_RegulatoryLocation, value);
@@ -293,10 +340,14 @@ CHIP_ERROR ConfigurationManagerImpl::GetRegulatoryLocation(uint8_t & location)
293340
}
294341

295342
return err;
343+
#endif // CHIP_DISABLE_PLATFORM_KVS
296344
}
297345

298346
CHIP_ERROR ConfigurationManagerImpl::GetLocationCapability(uint8_t & location)
299347
{
348+
#if CHIP_DISABLE_PLATFORM_KVS
349+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
350+
#else // CHIP_DISABLE_PLATFORM_KVS
300351
uint32_t value = 0;
301352

302353
CHIP_ERROR err = ReadConfigValue(PosixConfig::kConfigKey_LocationCapability, value);
@@ -308,10 +359,14 @@ CHIP_ERROR ConfigurationManagerImpl::GetLocationCapability(uint8_t & location)
308359
}
309360

310361
return err;
362+
#endif // CHIP_DISABLE_PLATFORM_KVS
311363
}
312364

313365
CHIP_ERROR ConfigurationManagerImpl::ReadPersistedStorageValue(::chip::Platform::PersistedStorage::Key key, uint32_t & value)
314366
{
367+
#if CHIP_DISABLE_PLATFORM_KVS
368+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
369+
#else // CHIP_DISABLE_PLATFORM_KVS
315370
PosixConfig::Key configKey{ PosixConfig::kConfigNamespace_ChipCounters, key };
316371

317372
CHIP_ERROR err = ReadConfigValue(configKey, value);
@@ -320,82 +375,143 @@ CHIP_ERROR ConfigurationManagerImpl::ReadPersistedStorageValue(::chip::Platform:
320375
err = CHIP_ERROR_PERSISTED_STORAGE_VALUE_NOT_FOUND;
321376
}
322377
return err;
378+
#endif // CHIP_DISABLE_PLATFORM_KVS
323379
}
324380

325381
CHIP_ERROR ConfigurationManagerImpl::WritePersistedStorageValue(::chip::Platform::PersistedStorage::Key key, uint32_t value)
326382
{
383+
#if CHIP_DISABLE_PLATFORM_KVS
384+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
385+
#else // CHIP_DISABLE_PLATFORM_KVS
327386
PosixConfig::Key configKey{ PosixConfig::kConfigNamespace_ChipCounters, key };
328387
return WriteConfigValue(configKey, value);
388+
#endif // CHIP_DISABLE_PLATFORM_KVS
329389
}
330390

331391
CHIP_ERROR ConfigurationManagerImpl::ReadConfigValue(Key key, bool & val)
332392
{
393+
#if CHIP_DISABLE_PLATFORM_KVS
394+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
395+
#else // CHIP_DISABLE_PLATFORM_KVS
333396
return PosixConfig::ReadConfigValue(key, val);
397+
#endif // CHIP_DISABLE_PLATFORM_KVS
334398
}
335399

336400
CHIP_ERROR ConfigurationManagerImpl::ReadConfigValue(Key key, uint16_t & val)
337401
{
402+
#if CHIP_DISABLE_PLATFORM_KVS
403+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
404+
#else // CHIP_DISABLE_PLATFORM_KVS
338405
return PosixConfig::ReadConfigValue(key, val);
406+
#endif // CHIP_DISABLE_PLATFORM_KVS
339407
}
340408

341409
CHIP_ERROR ConfigurationManagerImpl::ReadConfigValue(Key key, uint32_t & val)
342410
{
411+
#if CHIP_DISABLE_PLATFORM_KVS
412+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
413+
#else // CHIP_DISABLE_PLATFORM_KVS
343414
return PosixConfig::ReadConfigValue(key, val);
415+
#endif // CHIP_DISABLE_PLATFORM_KVS
344416
}
345417

346418
CHIP_ERROR ConfigurationManagerImpl::ReadConfigValue(Key key, uint64_t & val)
347419
{
420+
#if CHIP_DISABLE_PLATFORM_KVS
421+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
422+
#else // CHIP_DISABLE_PLATFORM_KVS
348423
return PosixConfig::ReadConfigValue(key, val);
424+
#endif // CHIP_DISABLE_PLATFORM_KVS
349425
}
350426

351427
CHIP_ERROR ConfigurationManagerImpl::ReadConfigValueStr(Key key, char * buf, size_t bufSize, size_t & outLen)
352428
{
429+
#if CHIP_DISABLE_PLATFORM_KVS
430+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
431+
#else // CHIP_DISABLE_PLATFORM_KVS
353432
return PosixConfig::ReadConfigValueStr(key, buf, bufSize, outLen);
433+
#endif // CHIP_DISABLE_PLATFORM_KVS
354434
}
355435

356436
CHIP_ERROR ConfigurationManagerImpl::ReadConfigValueBin(Key key, uint8_t * buf, size_t bufSize, size_t & outLen)
357437
{
438+
#if CHIP_DISABLE_PLATFORM_KVS
439+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
440+
#else // CHIP_DISABLE_PLATFORM_KVS
358441
return PosixConfig::ReadConfigValueBin(key, buf, bufSize, outLen);
442+
#endif // CHIP_DISABLE_PLATFORM_KVS
359443
}
360444

361445
CHIP_ERROR ConfigurationManagerImpl::WriteConfigValue(Key key, bool val)
362446
{
447+
#if CHIP_DISABLE_PLATFORM_KVS
448+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
449+
#else // CHIP_DISABLE_PLATFORM_KVS
363450
return PosixConfig::WriteConfigValue(key, val);
451+
#endif // CHIP_DISABLE_PLATFORM_KVS
364452
}
365453

366454
CHIP_ERROR ConfigurationManagerImpl::WriteConfigValue(Key key, uint16_t val)
367455
{
456+
#if CHIP_DISABLE_PLATFORM_KVS
457+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
458+
#else // CHIP_DISABLE_PLATFORM_KVS
368459
return PosixConfig::WriteConfigValue(key, val);
460+
#endif // CHIP_DISABLE_PLATFORM_KVS
369461
}
370462

371463
CHIP_ERROR ConfigurationManagerImpl::WriteConfigValue(Key key, uint32_t val)
372464
{
465+
#if CHIP_DISABLE_PLATFORM_KVS
466+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
467+
#else // CHIP_DISABLE_PLATFORM_KVS
373468
return PosixConfig::WriteConfigValue(key, val);
469+
#endif // CHIP_DISABLE_PLATFORM_KVS
374470
}
375471

376472
CHIP_ERROR ConfigurationManagerImpl::WriteConfigValue(Key key, uint64_t val)
377473
{
474+
#if CHIP_DISABLE_PLATFORM_KVS
475+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
476+
#else // CHIP_DISABLE_PLATFORM_KVS
378477
return PosixConfig::WriteConfigValue(key, val);
478+
#endif // CHIP_DISABLE_PLATFORM_KVS
379479
}
380480

381481
CHIP_ERROR ConfigurationManagerImpl::WriteConfigValueStr(Key key, const char * str)
382482
{
483+
#if CHIP_DISABLE_PLATFORM_KVS
484+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
485+
#else // CHIP_DISABLE_PLATFORM_KVS
383486
return PosixConfig::WriteConfigValueStr(key, str);
487+
#endif // CHIP_DISABLE_PLATFORM_KVS
384488
}
385489

386490
CHIP_ERROR ConfigurationManagerImpl::WriteConfigValueStr(Key key, const char * str, size_t strLen)
387491
{
492+
#if CHIP_DISABLE_PLATFORM_KVS
493+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
494+
#else // CHIP_DISABLE_PLATFORM_KVS
388495
return PosixConfig::WriteConfigValueStr(key, str, strLen);
496+
#endif // CHIP_DISABLE_PLATFORM_KVS
389497
}
390498

391499
CHIP_ERROR ConfigurationManagerImpl::WriteConfigValueBin(Key key, const uint8_t * data, size_t dataLen)
392500
{
501+
#if CHIP_DISABLE_PLATFORM_KVS
502+
return CHIP_ERROR_UNSUPPORTED_CHIP_FEATURE;
503+
#else // CHIP_DISABLE_PLATFORM_KVS
393504
return PosixConfig::WriteConfigValueBin(key, data, dataLen);
505+
#endif // CHIP_DISABLE_PLATFORM_KVS
394506
}
395507

396508
void ConfigurationManagerImpl::RunConfigUnitTest(void)
397509
{
510+
#if CHIP_DISABLE_PLATFORM_KVS
511+
return;
512+
#else // CHIP_DISABLE_PLATFORM_KVS
398513
PosixConfig::RunConfigUnitTest();
514+
#endif // CHIP_DISABLE_PLATFORM_KVS
399515
}
400516

401517
} // namespace DeviceLayer

0 commit comments

Comments
 (0)