3 * Copyright (c) 2020 Project CHIP Authors
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
18 #import "CHIPCallbackBridge.h"
20 #import <Foundation/Foundation.h>
22 CHIPCallbackBridge::CHIPCallbackBridge(CHIPDeviceCallback handler, dispatch_queue_t queue)
23 : Callback::Callback<>(CallbackFn, this)
29 CHIPCallbackBridge::~CHIPCallbackBridge() {}
31 void CHIPCallbackBridge::CallbackFn(void * context)
33 CHIPCallbackBridge * callback = reinterpret_cast<CHIPCallbackBridge *>(context);
34 if (callback && callback->mQueue) {
35 dispatch_async(callback->mQueue, ^{
36 callback->mHandler([CHIPError errorForCHIPErrorCode:CHIP_NO_ERROR]);