Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / src / controller / python / chip / logging / library_handle.py
1 #
2 #    Copyright (c) 2021 Project CHIP Authors
3 #
4 #    Licensed under the Apache License, Version 2.0 (the "License");
5 #    you may not use this file except in compliance with the License.
6 #    You may obtain a copy of the License at
7 #
8 #        http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #    Unless required by applicable law or agreed to in writing, software
11 #    distributed under the License is distributed on an "AS IS" BASIS,
12 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #    See the License for the specific language governing permissions and
14 #    limitations under the License.
15 #
16
17 import chip.native
18 import ctypes
19 from ctypes import c_void_p
20 from chip.logging.types import LogRedirectCallback_t
21
22
23 def _GetLoggingLibraryHandle() -> ctypes.CDLL:
24   """ Get the native library handle with logging method initialization.
25
26     Retreives the CHIP native library handle and attaches signatures to
27     native methods.
28     """
29
30   handle = chip.native.GetLibraryHandle()
31
32   # Uses one of the type decorators as an indicator for everything being
33   # initialized. 
34   if not handle.pychip_logging_set_callback.argtypes:
35     setter = chip.native.NativeLibraryHandleMethodArguments(handle)
36
37     setter.Set('pychip_logging_set_callback', c_void_p, [LogRedirectCallback_t])
38
39   return handle