Mercurial > octave
diff libinterp/corefcn/dynamic-ld.h @ 23627:0a6e87804cab
don't use singleton pattern for dynamic_loader class
* dynamic-ld.h, dynamic-ld.cc (dynamic_loader): Don't use singleton.
Use Octave coding standard for member names. Change all uses.
* interpreter.h, interpreter.cc (interpreter::m_dynamic_loader):
New data member.
(interpreter::get_dynamic_loader): New access function.
* interpreter-private.h interpreter-private.cc
(__get_dynamic_loader__): New function.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 16 Jun 2017 14:42:35 -0400 |
parents | b075b1629c26 |
children | 08036a7f3660 |
line wrap: on
line diff
--- a/libinterp/corefcn/dynamic-ld.h Fri Jun 16 16:25:56 2017 -0400 +++ b/libinterp/corefcn/dynamic-ld.h Fri Jun 16 14:42:35 2017 -0400 @@ -34,6 +34,8 @@ namespace octave { + class interpreter; + class dynamic_loader { @@ -47,7 +49,13 @@ typedef std::list<octave::dynamic_library>::iterator iterator; typedef std::list<octave::dynamic_library>::const_iterator const_iterator; - shlibs_list (void) : lib_list () { } + shlibs_list (void) : m_lib_list () { } + + // No copying! + + shlibs_list (const shlibs_list&) = delete; + + shlibs_list& operator = (const shlibs_list&) = delete; ~shlibs_list (void) = default; @@ -61,22 +69,17 @@ private: - // No copying! - - shlibs_list (const shlibs_list&) = delete; - - shlibs_list& operator = (const shlibs_list&) = delete; - // List of libraries we have loaded. - std::list<octave::dynamic_library> lib_list; + std::list<octave::dynamic_library> m_lib_list; }; - protected: - - dynamic_loader (void) : loaded_shlibs () { } public: + dynamic_loader (interpreter& interp) + : m_interpreter (interp), m_loaded_shlibs (), m_doing_load (false) + { } + // No copying! dynamic_loader (const dynamic_loader&) = delete; @@ -85,53 +88,33 @@ virtual ~dynamic_loader (void) = default; - static octave_function * + octave_function * load_oct (const std::string& fcn_name, const std::string& file_name = "", bool relative = false); - static octave_function * + octave_function * load_mex (const std::string& fcn_name, const std::string& file_name = "", bool relative = false); - static bool remove_oct (const std::string& fcn_name, + bool remove_oct (const std::string& fcn_name, octave::dynamic_library& shl); - static bool remove_mex (const std::string& fcn_name, + bool remove_mex (const std::string& fcn_name, octave::dynamic_library& shl); private: - static dynamic_loader *instance; - - static void cleanup_instance (void) { delete instance; instance = 0; } - - static bool instance_ok (void); + void clear_function (const std::string& fcn_name); - static void do_clear_function (const std::string& fcn_name); - - void do_clear (octave::dynamic_library& oct_file); - - octave_function * - do_load_oct (const std::string& fcn_name, - const std::string& file_name = "", - bool relative = false); + void clear (octave::dynamic_library& oct_file); - octave_function * - do_load_mex (const std::string& fcn_name, - const std::string& file_name = "", - bool relative = false); - - bool do_remove_oct (const std::string& fcn_name, octave::dynamic_library& shl); + interpreter& m_interpreter; - bool do_remove_mex (const std::string& fcn_name, octave::dynamic_library& shl); - - static bool doing_load; + shlibs_list m_loaded_shlibs; - protected: - - shlibs_list loaded_shlibs; + bool m_doing_load; static std::string name_mangler (const std::string& name);