8 #ifndef BOOSTER_SHARED_OBJECT_H
9 #define BOOSTER_SHARED_OBJECT_H
11 #include <booster/config.h>
12 #include <booster/noncopyable.h>
13 #include <booster/hold_ptr.h>
14 #include <booster/backtrace.h>
15 #include <booster/cstdint.h>
51 bool open(std::string
const &file_name);
59 bool open(std::string
const &file_name,std::string &error_message);
70 void *resolve_symbol(std::string
const &name)
const;
76 void symbol(T &s,std::string
const &name)
const
78 void *p = resolve_symbol(name);
82 s =
reinterpret_cast<T
>(
reinterpret_cast<size_t>(p));
96 static std::string name(std::string
const &module);
109 static std::string name(std::string
const &module,std::string
const &soversion);
Same as std::runtime_error but records stack trace.
Definition: backtrace.h:158
Class that allows loading dynamic libraries: shared objects and dlls.
Definition: shared_object.h:22
void symbol(T &s, std::string const &name) const
Definition: shared_object.h:76
This class makes impossible to copy any class derived from this one.
Definition: noncopyable.h:15