xref: /aosp_15_r20/external/pytorch/aten/src/ATen/DynamicLibrary.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1 #pragma once
2 
3 #include <ATen/Utils.h>
4 #include <c10/macros/Export.h>
5 #include <c10/util/Exception.h>
6 
7 namespace c10 {
8 
9 class DynamicLibraryError : public Error {
10   using Error::Error;
11 };
12 
13 } // namespace c10
14 
15 namespace at {
16 
17 struct DynamicLibrary {
18   AT_DISALLOW_COPY_AND_ASSIGN(DynamicLibrary);
19 
20   TORCH_API DynamicLibrary(
21       const char* name,
22       const char* alt_name = nullptr,
23       bool leak_handle = false);
24 
25   TORCH_API void* sym(const char* name);
26 
27   TORCH_API ~DynamicLibrary();
28 
29  private:
30   bool leak_handle;
31   void* handle = nullptr;
32 };
33 
34 } // namespace at
35