24 #if ! defined (octave_oct_shlib_h)
25 #define octave_oct_shlib_h 1
27 #include "octave-config.h"
51 : count (1),
file (), tm_loaded (time_t ()), fcn_names () { }
61 instances.erase (
file);
70 bool is_out_of_date (
void)
const;
89 void do_close_hook (close_hook cl_hook);
97 void fake_reload (
void);
120 : rep (
dynlib_rep::get_instance (f, fake)) { }
124 if (--rep->count == 0)
138 if (--rep->count == 0)
149 {
return (rep == sl.
rep); }
151 operator bool ()
const {
return rep->is_open (); }
159 rep->do_close_hook (cl_hook);
166 void *
f = rep->search (nm, mangler);
168 rep->add_fcn_name (nm);
174 { rep->add_fcn_name (name); }
177 {
return rep->remove_fcn_name (
name); }
180 {
return rep->num_fcn_names (); }
183 {
return rep->is_out_of_date (); }
186 {
return rep->file_name (); }
189 {
return rep->time_loaded (); }
197 #if defined (OCTAVE_USE_DEPRECATED_FUNCTIONS)
199 OCTAVE_DEPRECATED (
"use 'octave::dynamic_library' instead")
200 typedef
octave::dynamic_library octave_shlib;
virtual bool is_open(void) const
virtual void * search(const std::string &, name_mangler=0)
Octave interface to the compression and uncompression libraries.
For example cd octave end example noindent changes the current working directory to file
void * search(const std::string &nm, name_mangler mangler=0) const
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::map< std::string, size_t >::const_iterator fcn_names_const_iterator
static std::map< std::string, dynlib_rep * > instances
size_t num_fcn_names(void) const
bool is_out_of_date(void) const
std::map< std::string, size_t > fcn_names
octave::sys::time tm_loaded
dynamic_library(const std::string &f, bool fake=true)
OCTAVE_EXPORT octave_value_list isdir nd deftypefn *std::string nm
std::string file_name(void) const
octave_refcount< int > count
bool operator==(const dim_vector &a, const dim_vector &b)
static dynlib_rep nil_rep
size_t number_of_functions_loaded(void) const
octave::sys::time time_loaded(void) const
void add(const std::string &name)
dynamic_library(const dynamic_library &sl)
void open(const std::string &f)
virtual ~dynlib_rep(void)
octave::sys::time time_loaded(void) const
std::string file_name(void) const
void close(close_hook cl_hook=0)
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
std::map< std::string, size_t >::iterator fcn_names_iterator