@@ -486,62 +486,67 @@ bool Command::InitArgument(size_t argIndex, char * argValue)
486
486
return isValidArgument;
487
487
}
488
488
489
- size_t Command::AddArgument (const char * name, const char * value, uint8_t flags)
489
+ size_t Command::AddArgument (const char * name, const char * value, uint8_t flags, const char * desc )
490
490
{
491
491
Argument arg;
492
492
arg.type = ArgumentType::Attribute;
493
493
arg.name = name;
494
494
arg.value = const_cast <void *>(reinterpret_cast <const void *>(value));
495
495
arg.flags = flags;
496
+ arg.desc = desc;
496
497
497
498
return AddArgumentToList (std::move (arg));
498
499
}
499
500
500
- size_t Command::AddArgument (const char * name, char ** value, uint8_t flags)
501
+ size_t Command::AddArgument (const char * name, char ** value, uint8_t flags, const char * desc )
501
502
{
502
503
Argument arg;
503
504
arg.type = ArgumentType::String;
504
505
arg.name = name;
505
506
arg.value = reinterpret_cast <void *>(value);
506
507
arg.flags = flags;
508
+ arg.desc = desc;
507
509
508
510
return AddArgumentToList (std::move (arg));
509
511
}
510
512
511
- size_t Command::AddArgument (const char * name, chip::CharSpan * value, uint8_t flags)
513
+ size_t Command::AddArgument (const char * name, chip::CharSpan * value, uint8_t flags, const char * desc )
512
514
{
513
515
Argument arg;
514
516
arg.type = ArgumentType::CharString;
515
517
arg.name = name;
516
518
arg.value = reinterpret_cast <void *>(value);
517
519
arg.flags = flags;
520
+ arg.desc = desc;
518
521
519
522
return AddArgumentToList (std::move (arg));
520
523
}
521
524
522
- size_t Command::AddArgument (const char * name, chip::ByteSpan * value, uint8_t flags)
525
+ size_t Command::AddArgument (const char * name, chip::ByteSpan * value, uint8_t flags, const char * desc )
523
526
{
524
527
Argument arg;
525
528
arg.type = ArgumentType::OctetString;
526
529
arg.name = name;
527
530
arg.value = reinterpret_cast <void *>(value);
528
531
arg.flags = flags;
532
+ arg.desc = desc;
529
533
530
534
return AddArgumentToList (std::move (arg));
531
535
}
532
536
533
- size_t Command::AddArgument (const char * name, AddressWithInterface * out, uint8_t flags)
537
+ size_t Command::AddArgument (const char * name, AddressWithInterface * out, uint8_t flags, const char * desc )
534
538
{
535
539
Argument arg;
536
540
arg.type = ArgumentType::Address;
537
541
arg.name = name;
538
542
arg.value = reinterpret_cast <void *>(out);
539
543
arg.flags = flags;
544
+ arg.desc = desc;
540
545
541
546
return AddArgumentToList (std::move (arg));
542
547
}
543
548
544
- size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, std::vector<uint16_t > * value)
549
+ size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, std::vector<uint16_t > * value, const char * desc )
545
550
{
546
551
Argument arg;
547
552
arg.type = ArgumentType::Vector16;
@@ -550,11 +555,12 @@ size_t Command::AddArgument(const char * name, int64_t min, uint64_t max, std::v
550
555
arg.min = min;
551
556
arg.max = max;
552
557
arg.flags = 0 ;
558
+ arg.desc = desc;
553
559
554
560
return AddArgumentToList (std::move (arg));
555
561
}
556
562
557
- size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, std::vector<uint32_t > * value)
563
+ size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, std::vector<uint32_t > * value, const char * desc )
558
564
{
559
565
Argument arg;
560
566
arg.type = ArgumentType::Vector32;
@@ -563,11 +569,13 @@ size_t Command::AddArgument(const char * name, int64_t min, uint64_t max, std::v
563
569
arg.min = min;
564
570
arg.max = max;
565
571
arg.flags = 0 ;
572
+ arg.desc = desc;
566
573
567
574
return AddArgumentToList (std::move (arg));
568
575
}
569
576
570
- size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, chip::Optional<std::vector<uint32_t >> * value)
577
+ size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, chip::Optional<std::vector<uint32_t >> * value,
578
+ const char * desc)
571
579
{
572
580
Argument arg;
573
581
arg.type = ArgumentType::Vector32;
@@ -576,57 +584,63 @@ size_t Command::AddArgument(const char * name, int64_t min, uint64_t max, chip::
576
584
arg.min = min;
577
585
arg.max = max;
578
586
arg.flags = Argument::kOptional ;
587
+ arg.desc = desc;
579
588
580
589
return AddArgumentToList (std::move (arg));
581
590
}
582
591
583
- size_t Command::AddArgument (const char * name, ComplexArgument * value)
592
+ size_t Command::AddArgument (const char * name, ComplexArgument * value, const char * desc )
584
593
{
585
594
Argument arg;
586
595
arg.type = ArgumentType::Complex;
587
596
arg.name = name;
588
597
arg.value = static_cast <void *>(value);
589
598
arg.flags = 0 ;
599
+ arg.desc = desc;
590
600
591
601
return AddArgumentToList (std::move (arg));
592
602
}
593
603
594
- size_t Command::AddArgument (const char * name, CustomArgument * value)
604
+ size_t Command::AddArgument (const char * name, CustomArgument * value, const char * desc )
595
605
{
596
606
Argument arg;
597
607
arg.type = ArgumentType::Custom;
598
608
arg.name = name;
599
609
arg.value = const_cast <void *>(reinterpret_cast <const void *>(value));
600
610
arg.flags = 0 ;
611
+ arg.desc = desc;
601
612
602
613
return AddArgumentToList (std::move (arg));
603
614
}
604
615
605
- size_t Command::AddArgument (const char * name, float min, float max, float * out, uint8_t flags)
616
+ size_t Command::AddArgument (const char * name, float min, float max, float * out, uint8_t flags, const char * desc )
606
617
{
607
618
Argument arg;
608
619
arg.type = ArgumentType::Float;
609
620
arg.name = name;
610
621
arg.value = reinterpret_cast <void *>(out);
611
622
arg.flags = flags;
623
+ arg.desc = desc;
612
624
// Ignore min/max for now; they're always +-Infinity anyway.
613
625
614
626
return AddArgumentToList (std::move (arg));
615
627
}
616
628
617
- size_t Command::AddArgument (const char * name, double min, double max, double * out, uint8_t flags)
629
+ size_t Command::AddArgument (const char * name, double min, double max, double * out, uint8_t flags, const char * desc )
618
630
{
619
631
Argument arg;
620
632
arg.type = ArgumentType::Double;
621
633
arg.name = name;
622
634
arg.value = reinterpret_cast <void *>(out);
623
635
arg.flags = flags;
636
+ arg.desc = desc;
624
637
// Ignore min/max for now; they're always +-Infinity anyway.
625
638
626
639
return AddArgumentToList (std::move (arg));
627
640
}
628
641
629
- size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, void * out, ArgumentType type, uint8_t flags)
642
+ size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, void * out, ArgumentType type, uint8_t flags,
643
+ const char * desc)
630
644
{
631
645
Argument arg;
632
646
arg.type = type;
@@ -635,11 +649,12 @@ size_t Command::AddArgument(const char * name, int64_t min, uint64_t max, void *
635
649
arg.min = min;
636
650
arg.max = max;
637
651
arg.flags = flags;
652
+ arg.desc = desc;
638
653
639
654
return AddArgumentToList (std::move (arg));
640
655
}
641
656
642
- size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, void * out, uint8_t flags)
657
+ size_t Command::AddArgument (const char * name, int64_t min, uint64_t max, void * out, uint8_t flags, const char * desc )
643
658
{
644
659
Argument arg;
645
660
arg.type = ArgumentType::Number_uint8;
@@ -648,6 +663,7 @@ size_t Command::AddArgument(const char * name, int64_t min, uint64_t max, void *
648
663
arg.min = min;
649
664
arg.max = max;
650
665
arg.flags = flags;
666
+ arg.desc = desc;
651
667
652
668
return AddArgumentToList (std::move (arg));
653
669
}
@@ -662,6 +678,16 @@ const char * Command::GetArgumentName(size_t index) const
662
678
return nullptr ;
663
679
}
664
680
681
+ const char * Command::GetArgumentDescription (size_t index) const
682
+ {
683
+ if (index < mArgs .size ())
684
+ {
685
+ return mArgs .at (index ).desc ;
686
+ }
687
+
688
+ return nullptr ;
689
+ }
690
+
665
691
const char * Command::GetAttribute (void ) const
666
692
{
667
693
size_t argsCount = mArgs .size ();
0 commit comments