47 #define STRINGIFY(s) STRINGIFY1(s)
48 #define STRINGIFY1(s) #s
55 typedef std::list<octave_shlib>::iterator
iterator;
62 static octave_shlib find_file (
const std::string& file_name);
64 static void display (
void);
76 octave_shlib do_find_file (
const std::string& file_name)
const;
78 void do_display (
void)
const;
84 static bool instance_ok (
void);
130 if (p->file_name () == file_name)
143 std::cerr <<
"current shared libraries:" << std::endl;
145 std::cerr <<
" " << p->file_name () << std::endl;
163 ::error (
"unable to create shared library list object!");
219 ::error (
"unable to create dynamic loader object!");
230 warning_with_id (
"Octave:reload-forces-clear",
" %s", fcn_name.c_str ());
241 "reloading %s clears the following functions:",
252 const std::string& file_name,
270 oct_file.
open (file_name);
295 retval =
f (oct_file, relative);
298 ::error (
"failed to install .oct file function '%s'",
303 ::error (
"%s is not a valid shared library",
312 const std::string& file_name,
330 mex_file.
open (file_name);
342 bool have_fmex =
false;
366 ::error (
"failed to install .mex file function '%s'",
370 ::error (
"%s is not a valid shared library",
388 retval = shl.
remove (fcn_name);
408 retval = shl.
remove (fcn_name);
419 const std::string& file_name,
428 const std::string& file_name,
464 return "mexFunction";
470 return "_mexFunction";
void * search(const std::string &nm, name_mangler mangler=0) const
void warning_with_id(const char *id, const char *fmt,...)
static void clear(octave_shlib &oct_file)
static std::string mex_uscore_mangler(const std::string &name)
void do_remove(octave_shlib &shl, octave_shlib::close_hook cl_hook=0)
static octave_shlib find_file(const std::string &file_name)
void do_append(const octave_shlib &shl)
static std::string mex_mangler(const std::string &name)
static bool instance_ok(void)
static std::string mex_f77_mangler(const std::string &name)
NDArray & operator=(const NDArray &a)
void(* close_hook)(const std::string &)
void error(const char *fmt,...)
static octave_shlib_list * instance
size_t number_of_functions_loaded(void) const
static void clear_dld_function(const std::string &name)
bool do_remove_mex(const std::string &fcn_name, octave_shlib &shl)
static std::string name_mangler(const std::string &name)
octave_function *(* octave_dld_fcn_getter)(const octave_shlib &, bool relative)
bool remove(const std::string &name)
std::list< octave_shlib >::iterator iterator
F77_RET_T const double const double * f
static octave_function * load_oct(const std::string &fcn_name, const std::string &file_name=std::string(), bool relative=false)
static octave_dynamic_loader * instance
void do_display(void) const
static void display(void)
static octave_function * load_mex(const std::string &fcn_name, const std::string &file_name=std::string(), bool relative=false)
static void remove(octave_shlib &shl, octave_shlib::close_hook cl_hook=0)
static void append(const octave_shlib &shl)
octave_function * do_load_oct(const std::string &fcn_name, const std::string &file_name=std::string(), bool relative=false)
bool do_remove_oct(const std::string &fcn_name, octave_shlib &shl)
std::list< octave_shlib > lib_list
static bool remove_oct(const std::string &fcn_name, octave_shlib &shl)
bool is_out_of_date(void) const
void open(const std::string &f)
static std::string name_uscore_mangler(const std::string &name)
F77_RET_T F77_FUNC(zgemv, ZGEMV)(F77_CONST_CHAR_ARG_DECL
static void cleanup_instance(void)
octave_shlib do_find_file(const std::string &file_name) const
void close(close_hook cl_hook=0)
std::list< octave_shlib >::const_iterator const_iterator
octave_function * do_load_mex(const std::string &fcn_name, const std::string &file_name=std::string(), 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)
std::string file_name(void) const
Matrix append(const Matrix &a) const
static bool remove_mex(const std::string &fcn_name, octave_shlib &shl)