24 #if ! defined (octave_action_container_h)
25 #define octave_action_container_h 1
27 #include "octave-config.h"
47 virtual void run (
void) { }
70 void run (
void) { e_fptr (); }
73 void (*e_fptr) (void);
84 : e_fcn (
fcn), e_arg (arg) { }
86 void run (
void) { e_fcn (e_arg); }
104 template <
typename T>
109 : e_fcn (
fcn), e_arg (arg) { }
111 void run (
void) { e_fcn (e_arg); }
114 void (*e_fcn) (
const T&);
120 template <
typename T>
125 : e_obj (obj), e_method (method) { }
127 void run (
void) { (e_obj->*e_method) (); }
132 void (T::*e_method) (void);
143 template <
typename T,
typename A>
148 : e_obj (obj), e_method (method), e_arg (arg) { }
150 void run (
void) { (e_obj->*e_method) (e_arg); }
155 void (T::*e_method) (
A);
167 template <
typename T,
typename A>
172 : e_obj (obj), e_method (method), e_arg (arg) { }
174 void run (
void) { (e_obj->*e_method) (e_arg); }
179 void (T::*e_method) (
const A&);
191 template <
typename T>
196 : e_ptr (&ref), e_val (val) { }
198 void run (
void) { *e_ptr = e_val; }
213 template <
typename T>
220 void run (
void) {
delete e_ptr; }
237 virtual void add (
elem *new_elem) = 0;
246 template <
typename T>
253 template <
typename T>
260 template <
typename T>
267 template <
typename T,
typename A>
274 template <
typename T,
typename A>
282 template <
typename T>
289 template <
typename T>
296 template <
typename T>
304 virtual void run_first (
void) = 0;
311 for (
size_t i = 0;
i < num;
i++)
317 virtual void discard_first (
void) = 0;
324 for (
size_t i = 0;
i < num;
i++)
330 virtual size_t size (
void)
const = 0;
elem & operator=(const elem &)
void add_method(T *obj, void(T::*method)(const A &), const A &arg)
in that an updated permutation matrix is returned Note that if var
identity matrix If supplied two scalar respectively For allows like xample val
fcn_arg_elem(void(*fcn)(T), T arg)
void add_fcn(void(*action)(const T &), const T &val)
void add_method(T *obj, void(T::*method)(void))
fcn_elem(void(*fptr)(void))
create a structure array and initialize its values The dimensions of each cell array of values must match Singleton cells and non cell values are repeated so that they fill the entire array If the cells are empty
void add_fcn(void(*fcn)(void))
restore_var_elem(T &ref, const T &val)
fcn_crefarg_elem(void(*fcn)(const T &), const T &arg)
=val(i)}if ode{val(i)}occurs in table i
virtual ~action_container(void)
method_arg_elem(T *obj, void(T::*method)(A), A arg)
FloatComplex(* fptr)(const FloatComplex &, float, int, octave_idx_type &)
void add_method(T *obj, void(T::*method)(A), A arg)
method_crefarg_elem(T *obj, void(T::*method)(const A &), const A &arg)
void protect_var(T &var, const T &val)
void add_fcn(void(*action)(T), T val)
F77_RET_T const F77_INT F77_CMPLX * A
method_elem(T *obj, void(T::*method)(void))