| /* |
| * Copyright (c) 2024 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. |
| * |
| */ |
| |
| #include "IcdManager.h" |
| |
| IcdManager IcdManager::sInstance; |
| |
| IcdManager & IcdManager::Instance() |
| { |
| return sInstance; |
| } |
| |
| void IcdManager::OnCheckInComplete(const chip::app::ICDClientInfo & clientInfo) |
| { |
| DefaultCheckInDelegate::OnCheckInComplete(clientInfo); |
| if (mDelegate) |
| { |
| mDelegate->OnCheckInCompleted(clientInfo); |
| } |
| } |
| |
| void IcdManager::SetDelegate(Delegate * delegate) |
| { |
| // To keep IcdManager simple, there is an assumption that there is only ever |
| // one delegate set and it's lifetime is identical to IcdManager. In the |
| // future this assumption can change should there be a need, but that will |
| // require code changes to IcdManager. For now we will crash if someone tries |
| // to call SetDelegate for a second time or if delegate is non-null. |
| VerifyOrDie(delegate); |
| VerifyOrDie(!mDelegate); |
| mDelegate = delegate; |
| } |