3 * Copyright (c) 2021 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.
22 #include <platform/CHIPDeviceConfig.h>
23 #include <platform/Linux/dbus/bluez/DbusBluez.h>
24 #include <support/logging/CHIPLogging.h>
26 #include "BluezObjectIterator.h"
29 namespace DeviceLayer {
33 * C++ wrapper for a Bluez object list based on a object manager
38 explicit BluezObjectList(GDBusObjectManager * manager) { Initialize(manager); }
40 ~BluezObjectList() { g_list_free_full(mObjectList, g_object_unref); }
42 BluezObjectIterator begin() const { return BluezObjectIterator(mObjectList); }
43 BluezObjectIterator end() const { return BluezObjectIterator(); }
48 void Initialize(GDBusObjectManager * manager)
50 if (manager == nullptr)
52 ChipLogError(DeviceLayer, "Manager is NULL in %s", __func__);
56 mObjectList = g_dbus_object_manager_get_objects(manager);
60 GList * mObjectList = nullptr;
63 } // namespace Internal
64 } // namespace DeviceLayer