EGSnrc C++ class library  Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
egs_library.h
Go to the documentation of this file.
1 /*
2 ###############################################################################
3 #
4 # EGSnrc egs++ library headers
5 # Copyright (C) 2015 National Research Council Canada
6 #
7 # This file is part of EGSnrc.
8 #
9 # EGSnrc is free software: you can redistribute it and/or modify it under
10 # the terms of the GNU Affero General Public License as published by the
11 # Free Software Foundation, either version 3 of the License, or (at your
12 # option) any later version.
13 #
14 # EGSnrc is distributed in the hope that it will be useful, but WITHOUT ANY
15 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16 # FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
17 # more details.
18 #
19 # You should have received a copy of the GNU Affero General Public License
20 # along with EGSnrc. If not, see <http://www.gnu.org/licenses/>.
21 #
22 ###############################################################################
23 #
24 # Author: Iwan Kawrakow, 2005
25 #
26 # Contributors:
27 #
28 ###############################################################################
29 */
30 
31 
37 #ifndef EGS_LIBRARY_
38 #define EGS_LIBRARY_
39 
40 #include "egs_libconfig.h"
41 
42 class EGS_PrivateLibrary;
43 
53 
55  EGS_PrivateLibrary *pl;
56 
57 public:
58 
69  EGS_Library(const char *lib_name, const char *path = 0);
70 
76  ~EGS_Library();
77 
84  bool load();
85 
92  void *resolve(const char *func);
93 
100  bool unload();
101 
104  bool isLoaded() const;
105 
111  bool autoUnload() const;
112 
114  void setUnload(bool u);
115 
118  const char *libraryName() const;
119 
122  const char *libraryFile() const;
123 
136  static void *resolve(const char *lname, const char *func,
137  const char *path = 0);
138 };
139 
140 #endif
#define EGS_EXPORT
Export symbols from the egspp library.
Definition: egs_libconfig.h:90
A class for dynamically loading shared libraries.
Definition: egs_library.h:52
Defines the EGS_EXPORT and EGS_LOCAL macros.