)]}'
{
  "commit": "161b256b40c55ec1af4beb9d72a53536717f0551",
  "tree": "2f7df99c0a3a50b964e67eaa1dbd7ed372db27b4",
  "parents": [
    "45196ac28387b46eb7e817b665a79b7b7cb617a7"
  ],
  "author": {
    "name": "William",
    "email": "hicklin@users.noreply.github.com",
    "time": "Wed Jul 31 03:58:19 2024 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Jul 30 22:58:19 2024 -0400"
  },
  "message": "Implementation of service area server (#33991)\n\n* Add definitions for common HomeLocationStruct and types - see connectedhomeip-spec PR 8933\r\n\r\n* Add definition for Service Area Cluster - see connectedhomeip-spec PR 8937\r\n\r\n* Add semantic tag definitions needed for Service Area Cluster - see connectedhomeip-spec PR 8937\r\n\r\n* Update Service Area Cluster definition of LocationInfoStruct - see connectedhomeip-spec PR 8937\r\n\r\n* Rename SurfaceTag to FloorSurfaceTag - spec PR 8937 commit 431739b3e3996d0ef74a36b2a6b93ac0d3db9c45\r\n\r\n* Fix Carport typo, remove IsGroundFloor field (spec change)\r\n\r\n* Update home location definitions per spec PR 8933 commit f04958166412d5b7eff4d3443273f47f12f22baf 2024-05-23\r\n\r\n* update generated files\r\n\r\n* Update Service Area Cluster definitions per spec PR 8937 up to commit 6bf3762eb1ee733c642e79074744d1185b82a89c 2024-05-24\r\n\r\n* update generated files\r\n\r\n* Initial implementations of service-area-cluster per spec PR 8937 up to commit 6bf3762eb1ee733c642e79074744d1185b82a89c 2024-05-24\r\n\r\n* Regenerated zap files after merge.\r\n\r\n* Moved the AreaTypeTag namespace definition to namespaces.xml.\r\n\r\n* Moved the HomeLoc global struct into global-sturcts.xml.\r\n\r\n* Updated the AreaTypeTag namespace to match the latest spec definition.\r\n\r\n* Updated the AreaTypeTag namespace to match the latest spec definition.\r\n\r\n* Updated the matterlint rules with the changes in the xml files.\r\n\r\n* Reverted changes to the rvc zap file.\r\n\r\n* Addded global xml files to relevant lists of xmls.\r\n\r\n* Added the Position, Landmark and Floor Surface Namespaces.\r\n\r\n* Removed namespace tag definitions from the service area cluters XML.\r\n\r\n* Regenerated zap files.\r\n\r\n* Rewrite service-area-server and delegate to avoid disallowed c++ containers\r\n\r\n* Regenerated zap files.\r\n\r\n* Regenerated zap files.\r\n\r\n* Explicitly set the conformance.\r\n\r\n* Fixed typos in the service-area clusters XML from review.\r\n\r\n* Used a more feature rich method for defining the cluster\u0027s features.\r\n\r\n* Reordered data-type definitions to match the order in the spec.\r\n\r\n* Regenerated zap files.\r\n\r\n* Updated the service area type names following fixes to the XMLs.\r\n\r\n* Updated the rvc-example type names following fixes to the XMLs.\r\n\r\n* Simplified some of the logic in the service-area cluster objects.\r\n\r\n* Added an InEqual method to the LocationSturctureWrapper and simplified the Instance::IsUniqueSupportedLocation impl.\r\n\r\n* Removed the handle volotile methos as the delegate should be responsibel for updating these values as they change.\r\n\r\n* Apply editorial suggestions from code review.\r\n\r\nIncludes a minor bug fix.\r\n\r\nCo-authored-by: Kiel Oleson \u003ckielo@apple.com\u003e\r\nCo-authored-by: Petru Lauric \u003c81822411+plauric@users.noreply.github.com\u003e\r\n\r\n* Replaced Location Location in the logging text with Service Area.\r\n\r\n* Implemented some renaming and editorial changes from review. Moved some service area methods from public to private.\r\n\r\n* Added the ServicArea to the controller init.py\r\n\r\n* Moved the HandleSupportedLocationsUpdated method form the instance to the server.\r\n\r\n* Moved delegate implementations to the .cpp\r\n\r\n* Removed calling the HandleSupportedLocationsUpdate when adding a new supported location as the restrictions imposed on the SelectedLocations, CurrentLocation and Progress attributs are maintained.\r\n\r\n* Removed calling the HandleSupportedLocationsUpdate when adding a new supported map as the restrictions imposed on the SupprotedLocations attribut are maintained.\r\n\r\n* Renamed a delegate method and updated it\u0027s documentation.\r\n\r\n* Reverted a change to the darwin file for apple engineers to make.\r\n\r\n* Removed the optional cluster id prameter from the service area Instance constructor.\r\n\r\n* Removed unneeded check.\r\n\r\n* Added a way to get the Service Area instance from the delegate. Added a virtual Init method to the Service area delegate.\r\n\r\n* Moved the rvc service area delegate impl out of the rvc device class and into it\u0027s own class.\r\n\r\n* Comment chages to the service area delegate in the rvc example app.\r\n\r\n* Added github issue to a comment.\r\n\r\n* Restyled by whitespace\r\n\r\n* Restyled by clang-format\r\n\r\n* Restyled by gn\r\n\r\n* Restyled by isort\r\n\r\n* zap regen after pull.\r\n\r\n* Updated the Service Area code documentation following a review comment. Move the IsProgressElement to the delegate and added a default implementation.\r\n\r\n* Restyled by whitespace\r\n\r\n* Restyled by clang-format\r\n\r\n* Renamed DoseNameMatch to IsNameEqual.\r\n\r\n* Replaced the multiple bool inputs of the IsEqual method with a BitMask.\r\n\r\n* Removed the use of ret_value to improve readability.\r\n\r\n* Removed redundant ;\r\n\r\n* Removed redundant use of the namespaces.\r\n\r\n* Moved the empty impl of MatterServiceAreaPluginServerInitCallback to util.\r\n\r\n* Simplified some method returns.\r\n\r\n* Updated a log level.\r\n\r\n* Removed extra logs while reading attributes.\r\n\r\n* Removed else after if return.\r\n\r\n* Fixed sizeof-array-decay warning.\r\n\r\n* Cast all std::vector.size() returns in the RVC service area delegate to uint32_t. The service area server limits the size of these lists to 255.\r\n\r\n* Change the way the Delegate and Instance classes are stopped from being copyabel.\r\n\r\n* Fixed a bug that was causing the clang-tidy CI test to seg fault.\r\n\r\n* Restyled by clang-format\r\n\r\n* Renamed namespaces.xml to semantic-tag-namespace-enums.xml.\r\n\r\n* Missed some rename locations.\r\n\r\n* Regenerated zap files after sync with upstream.\r\n\r\n* Fixed typos from review.\r\n\r\n* Fixed the termination of the Location and Map structure wrappers\u0027 name buffers.\r\n\r\n* - Replaced the use of `char *` with `MutableCharSpan`.\r\n- Removed the use of the VerifyOrExit macro.\r\n- Removed `IsSupportedMapChangeAllowed` check in the `AddSupportedMap` method as adding maps does not compromise any of the other attributes.\r\n\r\n* Restyled by clang-format\r\n\r\n* Refactored out the use of ret_value.\r\n\r\n* Removed an unused method in the rvc-app\r\n\r\n* Refactored rvc-app to use static casts.\r\n\r\n* Fixed missing ;\r\n\r\n* Restyled by clang-format\r\n\r\n* Rplaced the use of fromCharSpan with _span in the rvc-app.\r\n\r\n* Removed unneeded casting.\r\n\r\n* Removed unnecessary null terminations in the service area struct wrappers.\r\n\r\n* Fixed an error in the docs.\r\n\r\n* Restyled by clang-format\r\n\r\n* Moved the responsibility of checking for duplicates in the selected locations command attribute to the server.\r\n\r\n* Restyled by clang-format\r\n\r\n* Removed unneccessary memset.\r\n\r\n* Updated some docs.\r\n\r\n* Removed unneeded Raw() call.\r\n\r\n* Added attribute ID to reading log.\r\n\r\n* Removed the use of __func__\r\n\r\n* Fixed incorrect command handling statuses.\r\n\r\n* Fixed some code documentation.\r\n\r\n* Fixed bug in handling of errorStatusTexts from the delegate.\r\n\r\n* Rnamed dummy vars as ignored.\r\n\r\n* Fixed the printing of map name.\r\n\r\n* Replaced use of Nullable\u003ctype\u003e with NullNullable.\r\n\r\n* Added a log that was commented out.\r\n\r\n* Added non-list service area attributes to the list of attributeAccessInterfaceAttributes.\r\n\r\n* Fixed bug relateing to getting a null value.\r\n\r\n* Improved the readability of the logic for determining if a change to the service area\u0027s estimated end time attribute should be reported.\r\n\r\n* Do not report CurrentLocation change if it does not change.\r\n\r\n* Simplified logic returns\r\n\r\nCo-authored-by: Andrei Litvin \u003candy314@gmail.com\u003e\r\n\r\n* Restyled by whitespace\r\n\r\n* Restyled by clang-format\r\n\r\n* Restyled by prettier-json\r\n\r\n* Changed the way the Commond Handler Interface is registered following the merge.\r\n\r\n* Made all delegate methods public. Removed the Instance class from being a friend of the Delegated class.\r\n\r\n* Restyled by clang-format\r\n\r\n* Reduced the socope of variabels to improve readability.\r\n\r\n* Regenerated zap files after sync with upstream.\r\n\r\n* Fixed name change of LocationDescriptorStruct\r\n\r\n* Restyled by clang-format\r\n\r\n* Added FeatureMap to the list of attributeAccessInterfaceAttributes.\r\n\r\n* Do not consider list of 0 as error.\r\n\r\n* Fixed attribute ID printing.\r\n\r\n* Apply suggestions from code review\r\n\r\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e\r\n\r\n* Generated zap code after merge.\r\n\r\n* Fixed the logic of the ReportEstimatedEndTimeChange method.\r\n\r\n---------\r\n\r\nCo-authored-by: jfierke@irobot.com \u003cjfierke@irobot.com\u003e\r\nCo-authored-by: Kiel Oleson \u003ckielo@apple.com\u003e\r\nCo-authored-by: Petru Lauric \u003c81822411+plauric@users.noreply.github.com\u003e\r\nCo-authored-by: Restyled.io \u003ccommits@restyled.io\u003e\r\nCo-authored-by: Andrei Litvin \u003candy314@gmail.com\u003e\r\nCo-authored-by: Boris Zbarsky \u003cbzbarsky@apple.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2db48c20b27357d82c34781e7432b7ba00a6cf86",
      "old_mode": 33188,
      "old_path": "examples/rvc-app/linux/BUILD.gn",
      "new_id": "0adb4e9c9ae8e91fc1a126b37665002cbc814336",
      "new_mode": 33188,
      "new_path": "examples/rvc-app/linux/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "f6a33a6199dd23634818a2b2dd26fa78c62945ba",
      "old_mode": 33188,
      "old_path": "examples/rvc-app/rvc-common/include/rvc-device.h",
      "new_id": "092ded91f76272d65d10118ff4eaa023d2e95db4",
      "new_mode": 33188,
      "new_path": "examples/rvc-app/rvc-common/include/rvc-device.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e170d2ffeb35ce9922473606a2afd8fd66f5a3eb",
      "new_mode": 33188,
      "new_path": "examples/rvc-app/rvc-common/include/rvc-service-area-delegate.h"
    },
    {
      "type": "modify",
      "old_id": "c22e5758ba17c1e67744026f9976e5d493e2b58a",
      "old_mode": 33188,
      "old_path": "examples/rvc-app/rvc-common/rvc-app.matter",
      "new_id": "cd377ef709b2b7e0baf362931712b28b4ee3a765",
      "new_mode": 33188,
      "new_path": "examples/rvc-app/rvc-common/rvc-app.matter"
    },
    {
      "type": "modify",
      "old_id": "7afc8b7d3b819b3af1894a2677177008935fa824",
      "old_mode": 33188,
      "old_path": "examples/rvc-app/rvc-common/rvc-app.zap",
      "new_id": "cb3ea7cc0d24c4aa867df0c75fe8d5a5a0491ed2",
      "new_mode": 33188,
      "new_path": "examples/rvc-app/rvc-common/rvc-app.zap"
    },
    {
      "type": "modify",
      "old_id": "63da53c0e0ee53d7829c15fa0d91b72983c7473e",
      "old_mode": 33188,
      "old_path": "examples/rvc-app/rvc-common/src/rvc-device.cpp",
      "new_id": "e018e0929301c7f71ccf1f834ce2187de48506bd",
      "new_mode": 33188,
      "new_path": "examples/rvc-app/rvc-common/src/rvc-device.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c66b35b43fe60a57bdaba5c12b1f58ca8602103",
      "new_mode": 33188,
      "new_path": "examples/rvc-app/rvc-common/src/rvc-service-area-delegate.cpp"
    },
    {
      "type": "modify",
      "old_id": "ae7bb84948b3be1ce11fc230cf6a04033a5e3442",
      "old_mode": 33188,
      "old_path": "src/app/chip_data_model.gni",
      "new_id": "ce65fe42331acbbec1c80547a7e51412e94703d8",
      "new_mode": 33188,
      "new_path": "src/app/chip_data_model.gni"
    },
    {
      "type": "modify",
      "old_id": "b550026b5f1cd7163078a644c218e7eea1d2f8e1",
      "old_mode": 33188,
      "old_path": "src/app/clusters/basic-information/basic-information.cpp",
      "new_id": "bd45a1035164b5f970fb508874d7e99801f63fe6",
      "new_mode": 33188,
      "new_path": "src/app/clusters/basic-information/basic-information.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e46704796f74c320d5e8fdf85a812299a8fde0ae",
      "new_mode": 33188,
      "new_path": "src/app/clusters/service-area-server/service-area-cluster-objects.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1be7d257336c94bcee5308aa619ed5abdfcb41a8",
      "new_mode": 33188,
      "new_path": "src/app/clusters/service-area-server/service-area-delegate.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "baf50d071b3404ae1b6d09e18a5fba392fea0166",
      "new_mode": 33188,
      "new_path": "src/app/clusters/service-area-server/service-area-delegate.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "97775fb24f67c0c952f7570a40cbfad6041894d2",
      "new_mode": 33188,
      "new_path": "src/app/clusters/service-area-server/service-area-server.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f43ea07337406f1b1a16653e4aef2493c0313c42",
      "new_mode": 33188,
      "new_path": "src/app/clusters/service-area-server/service-area-server.h"
    },
    {
      "type": "modify",
      "old_id": "d77db76970818cf4a4dbae67e06d56c37ccf1913",
      "old_mode": 33188,
      "old_path": "src/app/common/templates/config-data.yaml",
      "new_id": "d8d276f53a070023ce598cf8b8146a3703802ce7",
      "new_mode": 33188,
      "new_path": "src/app/common/templates/config-data.yaml"
    },
    {
      "type": "modify",
      "old_id": "f903b5b52ea8da102a7d2b091d6a5b14047a9d9d",
      "old_mode": 33188,
      "old_path": "src/app/util/util.cpp",
      "new_id": "763e198f41fded1f94e317aebe05f2fd19bcd96d",
      "new_mode": 33188,
      "new_path": "src/app/util/util.cpp"
    },
    {
      "type": "modify",
      "old_id": "1452fa0f9ed8f7bfd9accc366d2e240c62d49cdf",
      "old_mode": 33188,
      "old_path": "src/app/zap-templates/zcl/zcl-with-test-extensions.json",
      "new_id": "4c5a59200e7d49f50cf85750b3529cf66319d4fc",
      "new_mode": 33188,
      "new_path": "src/app/zap-templates/zcl/zcl-with-test-extensions.json"
    },
    {
      "type": "modify",
      "old_id": "769e6e87b698e885c8526d06a7fe21d53052ee80",
      "old_mode": 33188,
      "old_path": "src/app/zap-templates/zcl/zcl.json",
      "new_id": "777847fb7f06ad7887f5a0c9792bb8bc0296ddf0",
      "new_mode": 33188,
      "new_path": "src/app/zap-templates/zcl/zcl.json"
    },
    {
      "type": "modify",
      "old_id": "6939c1475ead70a64dc74111e10490478dc8c4c1",
      "old_mode": 33188,
      "old_path": "src/app/zap_cluster_list.json",
      "new_id": "e5f0ea9e2e892a1e82473664cc697e46bec7bcd1",
      "new_mode": 33188,
      "new_path": "src/app/zap_cluster_list.json"
    },
    {
      "type": "modify",
      "old_id": "779b8c6fe5a4bbbcdeb826eea1cc170c4c73a215",
      "old_mode": 33188,
      "old_path": "src/controller/python/chip/clusters/__init__.py",
      "new_id": "5fbb13dcc616a93e2489e8847e3eafc1aa5b8502",
      "new_mode": 33188,
      "new_path": "src/controller/python/chip/clusters/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "31476aab9492bcef6f2f71af775ef9b514740909",
      "old_mode": 33188,
      "old_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp",
      "new_id": "81744d5c6994ff64c4152cc07284bdc5e33c016a",
      "new_mode": 33188,
      "new_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.cpp"
    },
    {
      "type": "modify",
      "old_id": "5432b0efab52acec80ae32e76e2a4a08e529e1ba",
      "old_mode": 33188,
      "old_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h",
      "new_id": "cd73287e99b4cab850d66ffc88a4581a1ea37d4c",
      "new_mode": 33188,
      "new_path": "zzz_generated/app-common/app-common/zap-generated/attributes/Accessors.h"
    },
    {
      "type": "modify",
      "old_id": "fada12b193c24bb8336b1c9a1a68b586ed67fd63",
      "old_mode": 33188,
      "old_path": "zzz_generated/app-common/app-common/zap-generated/callback.h",
      "new_id": "60cdf13689cf10cfc13f805296c4e25ce8684165",
      "new_mode": 33188,
      "new_path": "zzz_generated/app-common/app-common/zap-generated/callback.h"
    }
  ]
}
