23 #if defined (HAVE_CONFIG_H)
47 #define STRINGIFY(s) STRINGIFY1(s)
48 #define STRINGIFY1(s) #s
55 typedef std::list<octave::dynamic_library>::iterator
iterator;
65 static void display (
void);
80 void do_display (
void)
const;
86 static bool instance_ok (
void);
132 if (
p->file_name () == file_name)
145 std::cerr <<
"current shared libraries:" << std::endl;
147 std::cerr <<
" " <<
p->file_name () << std::endl;
164 error (
"unable to create shared library list object!");
216 error (
"unable to create dynamic loader object!");
224 warning_with_id (
"Octave:reload-forces-clear",
" %s", fcn_name.c_str ());
235 "reloading %s clears the following functions:",
253 frame.
protect_var (octave_dynamic_loader::doing_load);
264 oct_file.
open (file_name);
271 error (
"%s is not a valid shared library", file_name.c_str ());
288 retval =
f (oct_file, relative);
291 error (
"failed to install .oct file function '%s'",
307 frame.
protect_var (octave_dynamic_loader::doing_load);
318 mex_file.
open (file_name);
325 error (
"%s is not a valid shared library", file_name.c_str ());
329 bool have_fmex =
false;
352 error (
"failed to install .mex file function '%s'", fcn_name.c_str ());
368 retval = shl.
remove (fcn_name);
388 retval = shl.
remove (fcn_name);
444 return "mexFunction";
450 return "_mexFunction";
std::list< octave::dynamic_library > lib_list
void warning_with_id(const char *id, const char *fmt,...)
static std::string mex_uscore_mangler(const std::string &name)
void * search(const std::string &nm, name_mangler mangler=0) const
static std::string mex_mangler(const std::string &name)
static bool instance_ok(void)
static std::string mex_f77_mangler(const std::string &name)
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &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 F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE const F77_DBLE * f
std::list< octave::dynamic_library >::const_iterator const_iterator
NDArray & operator=(const NDArray &a)
bool do_remove_mex(const std::string &fcn_name, octave::dynamic_library &shl)
void error(const char *fmt,...)
static void append(const octave::dynamic_library &shl)
void do_append(const octave::dynamic_library &shl)
static octave::dynamic_library find_file(const std::string &file_name)
bool is_out_of_date(void) const
static octave_shlib_list * instance
static bool remove_oct(const std::string &fcn_name, octave::dynamic_library &shl)
static void clear_dld_function(const std::string &name)
octave_function * do_load_oct(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
void do_remove(octave::dynamic_library &shl, octave::dynamic_library::close_hook cl_hook=0)
static std::string name_mangler(const std::string &name)
void(* close_hook)(const std::string &)
bool do_remove_oct(const std::string &fcn_name, octave::dynamic_library &shl)
static octave_dynamic_loader * instance
octave::dynamic_library do_find_file(const std::string &file_name) const
static octave_function * load_oct(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
void do_display(void) const
static void display(void)
F77_RET_T F77_FUNC(xstopx, XSTOPX) const
octave::unwind_protect frame
static bool remove_mex(const std::string &fcn_name, octave::dynamic_library &shl)
size_t number_of_functions_loaded(void) const
std::list< octave::dynamic_library >::iterator iterator
void open(const std::string &f)
static std::string name_uscore_mangler(const std::string &name)
octave_function * do_load_mex(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
static void cleanup_instance(void)
std::string file_name(void) const
bool remove(const std::string &name)
void close(close_hook cl_hook=0)
static void remove(octave::dynamic_library &shl, octave::dynamic_library::close_hook cl_hook=0)
octave_function *(* octave_dld_fcn_getter)(const octave::dynamic_library &, bool relative)
static void clear(octave::dynamic_library &oct_file)
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
static octave_function * load_mex(const std::string &fcn_name, const std::string &file_name="", bool relative=false)
static void do_clear_function(const std::string &fcn_name)
octave_dynamic_loader(void)
static void cleanup_instance(void)
static bool instance_ok(void)