4 #include <libvisual/lvconfig.h>
5 #include <libvisual/lv_defines.h>
6 #include <libvisual/lv_intrusive_ptr.hpp>
14 typedef IntrusivePtr<Module> ModulePtr;
20 static ModulePtr load (std::string
const& path);
28 void* get_symbol (std::string
const& name);
30 static std::string
const& path_suffix ();
35 const std::unique_ptr<Impl> m_impl;
37 unsigned int m_ref_count;
39 explicit Module (std::string
const& path);
41 friend void intrusive_ptr_add_ref (
Module* module);
42 friend void intrusive_ptr_release (
Module* module);
45 inline void intrusive_ptr_add_ref (
Module* module)
47 module->m_ref_count++;
50 inline void intrusive_ptr_release (Module* module)
52 module->m_ref_count--;
53 if (module->m_ref_count == 0) {
60 #endif // _LV_MODULE_HPP