-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Untangle SetUpCodePairer from CHIPDeviceCommissioner a bit. (#16890)
Followup to #16802 Instead of making the behavior of CHIPDeviceCommissioner depend on the state of the SetUpCodePairer, just have the latter register as the pairing delegate when it cares about PASE establishment, and restore the logic we used to have in CHIPDeviceCommissioner before PR 16802. The one logic change in CHIPDeviceCommissioner other than that is a fix to ensure that we in fact call OnPairingComplete when PASE is established even if we're going to proceed to auto-commission, so SetUpCodePairer knows to get out of the way at that point.
- Loading branch information
1 parent
566cf88
commit d170a25
Showing
6 changed files
with
216 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
/* | ||
* Copyright (c) 2021 Project CHIP Authors | ||
* All rights reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
#pragma once | ||
|
||
#include <lib/core/CHIPError.h> | ||
#include <lib/core/NodeId.h> | ||
#include <lib/support/DLLUtil.h> | ||
#include <stdint.h> | ||
|
||
namespace chip { | ||
namespace Controller { | ||
|
||
/** | ||
* A delegate that can be notified of progress as a "pairing" (which might mean | ||
* "PASE session establishment" or "commissioning") proceeds. | ||
*/ | ||
class DLL_EXPORT DevicePairingDelegate | ||
{ | ||
public: | ||
virtual ~DevicePairingDelegate() {} | ||
|
||
enum Status : uint8_t | ||
{ | ||
SecurePairingSuccess = 0, | ||
SecurePairingFailed, | ||
}; | ||
|
||
/** | ||
* @brief | ||
* Called when the pairing reaches a certain stage. | ||
* | ||
* @param status Current status of pairing | ||
*/ | ||
virtual void OnStatusUpdate(DevicePairingDelegate::Status status) {} | ||
|
||
/** | ||
* @brief | ||
* Called when PASE session establishment is complete (with success or error) | ||
* | ||
* @param error Error cause, if any | ||
*/ | ||
virtual void OnPairingComplete(CHIP_ERROR error) {} | ||
|
||
/** | ||
* @brief | ||
* Called when the pairing is deleted (with success or error) | ||
* | ||
* @param error Error cause, if any | ||
*/ | ||
virtual void OnPairingDeleted(CHIP_ERROR error) {} | ||
|
||
/** | ||
* Called when the commissioning process is complete (with success or error) | ||
*/ | ||
virtual void OnCommissioningComplete(NodeId deviceId, CHIP_ERROR error) {} | ||
}; | ||
|
||
} // namespace Controller | ||
} // namespace chip |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.