23 #if defined (HAVE_CONFIG_H) 47 #define STRINGIFY(s) STRINGIFY1(s) 48 #define STRINGIFY1(s) #s 58 std::list<std::string>
61 std::list<std::string> removed_fcns;
63 for (
iterator p = m_lib_list.begin ();
p != m_lib_list.end ();
p++)
69 removed_fcns = shl.
close ();
83 for (
const auto& lib : m_lib_list)
85 if (lib.file_name () == file_name)
98 std::cerr <<
"current shared libraries:" << std::endl;
99 for (
const auto& lib : m_lib_list)
100 std::cerr <<
" " << lib.file_name () << std::endl;
106 warning_with_id (
"Octave:reload-forces-clear",
" %s", fcn_name.c_str ());
123 "reloading %s clears the following functions:",
128 for (
const auto& fcn_name : removed_fcns)
141 for (
const auto& fcn_name : removed_fcns)
166 oct_file.
open (file_name);
173 error (
"%s is not a valid shared library", file_name.c_str ());
190 retval =
f (oct_file, relative);
193 error (
"failed to install .oct file function '%s'",
220 mex_file.
open (file_name);
227 error (
"%s is not a valid shared library", file_name.c_str ());
229 void *
function =
nullptr;
231 bool have_fmex =
false;
254 error (
"failed to install .mex file function '%s'", fcn_name.c_str ());
314 return "mexFunction";
320 return "_mexFunction";
void warning_with_id(const char *id, const char *fmt,...)
size_t number_of_functions_loaded(void) const
std::string file_name(void) const
std::list< dynamic_library >::iterator iterator
void clear_dld_function(const std::string &name)
F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE * f
void error(const char *fmt,...)
bool is_out_of_date(void) const
bool remove_oct(const std::string &fcn_name, dynamic_library &shl)
std::list< dynamic_library > m_lib_list
static std::string name_uscore_mangler(const std::string &name)
std::list< std::string > close(void)
dynamic_library find_file(const std::string &file_name) const
static std::string mex_mangler(const std::string &name)
nd deftypefn *std::string name
interpreter & m_interpreter
shlibs_list m_loaded_shlibs
void clear_function(const std::string &fcn_name)
static std::string mex_uscore_mangler(const std::string &name)
void clear(dynamic_library &oct_file)
octave_function *(* octave_dld_fcn_getter)(const octave::dynamic_library &, bool relative)
static std::string name_mangler(const std::string &name)
F77_RET_T F77_FUNC(xerbla, XERBLA)
symbol_table & get_symbol_table(void)
bool remove_mex(const std::string &fcn_name, dynamic_library &shl)
octave::unwind_protect frame
octave_function * load_mex(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
void open(const std::string &f)
octave_function * load_oct(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
bool remove(const std::string &name)
std::list< std::string > remove(dynamic_library &shl)
void append(const dynamic_library &shl)
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string
void * search(const std::string &nm, name_mangler mangler=nullptr) const
static std::string mex_f77_mangler(const std::string &name)