Provides threadsafe access to octave. More...
#include "octave-link.h"
Public Types | |
typedef std::list< std::pair< std::string, std::string > > | filter_list |
Public Member Functions | |
octave_link (const octave_link &)=delete | |
virtual | ~octave_link (void) |
bool | do_disable (void) |
bool | do_enable (void) |
octave_link & | operator= (const octave_link &)=delete |
Static Public Member Functions | |
static void | append_history (const std::string &hist_entry) |
static void | change_directory (const std::string &dir) |
static void | clear_history (void) |
static void | clear_workspace (void) |
static bool | confirm_shutdown (void) |
static void | connect_link (octave_link *) |
static bool | copy_image_to_clipboard (const std::string &file) |
static int | debug_cd_or_addpath_error (const std::string &file, const std::string &dir, bool addpath_option) |
static bool | disable (void) |
static void | discard_events (void) |
static octave_link * | disconnect_link (bool delete_instance=true) |
static bool | edit_file (const std::string &file) |
static bool | edit_variable (const std::string &name, const octave_value &val) |
static bool | enable (void) |
static bool | enabled (void) |
static void | enter_debugger_event (const std::string &file, int line) |
static void | entered_readline_hook (void) |
static void | execute_command_in_terminal (const std::string &command) |
static void | execute_in_debugger_event (const std::string &file, int line) |
static void | exit_debugger_event (void) |
static std::list< std::string > | file_dialog (const filter_list &filter, const std::string &title, const std::string &filename, const std::string &dirname, const std::string &multimode) |
static void | finished_readline_hook (void) |
static void | generate_events (void) |
static std::list< std::string > | input_dialog (const std::list< std::string > &prompt, const std::string &title, const std::list< float > &nr, const std::list< float > &nc, const std::list< std::string > &defaults) |
static std::pair< std::list< int >, int > | list_dialog (const std::list< std::string > &list, const std::string &mode, int width, int height, const std::list< int > &initial_value, const std::string &name, const std::list< std::string > &prompt, const std::string &ok_string, const std::string &cancel_string) |
static int | message_dialog (const std::string &dlg, const std::string &msg, const std::string &title) |
template<typename T > | |
static void | post_event (T *obj, void(T::*method)(void)) |
template<typename T , typename A > | |
static void | post_event (T *obj, void(T::*method)(A), A arg) |
template<typename T , typename A > | |
static void | post_event (T *obj, void(T::*method)(const A &), const A &arg) |
template<class T , class A , class B > | |
static void | post_event (T *obj, void(T::*method)(const A &, const B &), const A &arg_a, const B &arg_b) |
template<class T , class A , class B , class C > | |
static void | post_event (T *obj, void(T::*method)(const A &, const B &, const C &), const A &arg_a, const B &arg_b, const C &arg_c) |
template<class T , class A , class B , class C , class D > | |
static void | post_event (T *obj, void(T::*method)(const A &, const B &, const C &, const D &), const A &arg_a, const B &arg_b, const C &arg_c, const D &arg_d) |
static void | post_exception (const std::exception_ptr &p) |
static void | post_input_event (void) |
static void | pre_input_event (void) |
static void | process_events (bool disable=false) |
static bool | prompt_new_edit_file (const std::string &file) |
static std::string | question_dialog (const std::string &msg, const std::string &title, const std::string &btn1, const std::string &btn2, const std::string &btn3, const std::string &btndef) |
static bool | register_doc (const std::string &file) |
static void | set_default_prompts (std::string &ps1, std::string &ps2, std::string &ps4) |
static void | set_history (const string_vector &hist) |
static void | set_workspace (void) |
static void | set_workspace (bool top_level, const octave::symbol_scope &scope, bool update_variable_editor=true) |
static bool | show_doc (const std::string &file) |
static bool | show_preferences () |
static bool | unregister_doc (const std::string &file) |
static void | update_breakpoint (bool insert, const std::string &file, int line, const std::string &cond="") |
Protected Member Functions | |
octave_link (void) | |
virtual void | do_append_history (const std::string &hist_entry)=0 |
virtual void | do_change_directory (const std::string &dir)=0 |
virtual void | do_clear_history (void)=0 |
virtual void | do_clear_workspace (void)=0 |
virtual bool | do_confirm_shutdown (void)=0 |
virtual bool | do_copy_image_to_clipboard (const std::string &file)=0 |
virtual int | do_debug_cd_or_addpath_error (const std::string &file, const std::string &dir, bool addpath_option)=0 |
void | do_discard_events (void) |
virtual bool | do_edit_file (const std::string &file)=0 |
virtual void | do_edit_variable (const std::string &name, const octave_value &val)=0 |
virtual void | do_enter_debugger_event (const std::string &file, int line)=0 |
void | do_entered_readline_hook (void) |
virtual void | do_execute_command_in_terminal (const std::string &command)=0 |
virtual void | do_execute_in_debugger_event (const std::string &file, int line)=0 |
virtual void | do_exit_debugger_event (void)=0 |
virtual std::list< std::string > | do_file_dialog (const filter_list &filter, const std::string &title, const std::string &filename, const std::string &dirname, const std::string &multimode)=0 |
void | do_finished_readline_hook (void) |
void | do_generate_events (void) |
virtual std::list< std::string > | do_input_dialog (const std::list< std::string > &prompt, const std::string &title, const std::list< float > &nr, const std::list< float > &nc, const std::list< std::string > &defaults)=0 |
virtual std::pair< std::list< int >, int > | do_list_dialog (const std::list< std::string > &list, const std::string &mode, int width, int height, const std::list< int > &initial_value, const std::string &name, const std::list< std::string > &prompt, const std::string &ok_string, const std::string &cancel_string)=0 |
virtual int | do_message_dialog (const std::string &dlg, const std::string &msg, const std::string &title)=0 |
template<typename T > | |
void | do_post_event (T *obj, void(T::*method)(void)) |
template<typename T , typename A > | |
void | do_post_event (T *obj, void(T::*method)(A), A arg) |
template<typename T , typename A > | |
void | do_post_event (T *obj, void(T::*method)(const A &), const A &arg) |
template<class T , class A , class B > | |
void | do_post_event (T *obj, void(T::*method)(const A &, const B &), const A &arg_a, const B &arg_b) |
template<class T , class A , class B , class C > | |
void | do_post_event (T *obj, void(T::*method)(const A &, const B &, const C &), const A &arg_a, const B &arg_b, const C &arg_c) |
template<class T , class A , class B , class C , class D > | |
void | do_post_event (T *obj, void(T::*method)(const A &, const B &, const C &, const D &), const A &arg_a, const B &arg_b, const C &arg_c, const D &arg_d) |
void | do_post_exception (const std::exception_ptr &p) |
virtual void | do_post_input_event (void)=0 |
virtual void | do_pre_input_event (void)=0 |
void | do_process_events (void) |
virtual bool | do_prompt_new_edit_file (const std::string &file)=0 |
virtual std::string | do_question_dialog (const std::string &msg, const std::string &title, const std::string &btn1, const std::string &btn2, const std::string &btn3, const std::string &btndef)=0 |
virtual void | do_register_doc (const std::string &file)=0 |
virtual void | do_set_default_prompts (std::string &ps1, std::string &ps2, std::string &ps4)=0 |
virtual void | do_set_history (const string_vector &hist)=0 |
virtual void | do_set_workspace (bool top_level, bool debug, const octave::symbol_scope &scope, bool update_variable_editor)=0 |
virtual void | do_show_doc (const std::string &file)=0 |
virtual void | do_show_preferences (void)=0 |
virtual void | do_unregister_doc (const std::string &file)=0 |
virtual void | do_update_breakpoint (bool insert, const std::string &file, int line, const std::string &cond)=0 |
void | rethrow_exception_callback (const std::exception_ptr &p) |
Protected Attributes | |
bool | debugging |
octave::mutex * | event_queue_mutex |
octave::event_queue | gui_event_queue |
bool | link_enabled |
Static Private Member Functions | |
static bool | instance_ok (void) |
Static Private Attributes | |
static octave_link * | instance = nullptr |
Provides threadsafe access to octave.
This class is a wrapper around octave and provides thread safety by buffering access operations to octave and executing them in the readline event hook, which lives in the octave thread.
Definition at line 52 of file octave-link.h.
typedef std::list<std::pair<std::string, std::string> > octave_link::filter_list |
Definition at line 237 of file octave-link.h.
|
protected |
Definition at line 54 of file octave-link.cc.
References octave::command_editor::add_event_hook(), and octave_readline_hook().
|
delete |
|
virtual |
Definition at line 61 of file octave-link.cc.
References event_queue_mutex.
|
inlinestatic |
Definition at line 295 of file octave-link.h.
Referenced by edit_history_add_hist(), octave::base_reader::octave_gets(), and octave_history_write_timestamp().
|
inlinestatic |
Definition at line 259 of file octave-link.h.
Referenced by octave_change_to_directory().
|
inlinestatic |
Definition at line 301 of file octave-link.h.
Referenced by do_history().
|
inlinestatic |
Definition at line 283 of file octave-link.h.
|
inlinestatic |
Definition at line 96 of file octave-link.h.
References retval.
|
static |
Definition at line 86 of file octave-link.cc.
References error(), and instance.
Referenced by octave::main_window::construct_octave_qt_link().
|
inlinestatic |
Definition at line 175 of file octave-link.h.
References file.
Referenced by QtHandles::Figure::copy_figure_callback().
|
inlinestatic |
Definition at line 250 of file octave-link.h.
References file.
|
inlinestatic |
Definition at line 383 of file octave-link.h.
|
inlinestatic |
Definition at line 90 of file octave-link.h.
|
inlinestatic |
Definition at line 355 of file octave-link.h.
References retval.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
inline |
Definition at line 395 of file octave-link.h.
References retval.
|
protected |
Definition at line 109 of file octave-link.cc.
References octave::action_container::discard(), event_queue_mutex, gui_event_queue, octave::mutex::lock(), and octave::mutex::unlock().
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
inline |
Definition at line 388 of file octave-link.h.
References retval.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
inlineprotected |
Definition at line 546 of file octave-link.h.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
inlineprotected |
Definition at line 547 of file octave-link.h.
|
protected |
Definition at line 95 of file octave-link.cc.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
inlineprotected |
Definition at line 490 of file octave-link.h.
References octave::action_container::add_method(), and method.
|
inlineprotected |
Definition at line 496 of file octave-link.h.
References octave::action_container::add_method(), arg, and method.
|
inlineprotected |
Definition at line 502 of file octave-link.h.
References octave::action_container::add_method(), arg, and method.
|
inlineprotected |
Definition at line 508 of file octave-link.h.
References A, octave::action_container::add_method(), arg_a, arg_b, B, and method.
|
inlineprotected |
Definition at line 516 of file octave-link.h.
References A, octave::action_container::add_method(), arg_a, arg_b, arg_c, B, C, and method.
|
inlineprotected |
Definition at line 526 of file octave-link.h.
References A, octave::action_container::add_method(), arg_a, arg_b, arg_c, B, C, and method.
|
inlineprotected |
Definition at line 541 of file octave-link.h.
References p, and rethrow_exception_callback().
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protected |
Definition at line 99 of file octave-link.cc.
References event_queue_mutex, gui_event_queue, octave::mutex::lock(), octave::action_container::run(), and octave::mutex::unlock().
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
Referenced by set_workspace().
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
protectedpure virtual |
Implemented in octave::octave_qt_link.
|
inlinestatic |
Definition at line 181 of file octave-link.h.
References file.
Referenced by F__octave_link_edit_file__().
|
inlinestatic |
|
inlinestatic |
Definition at line 378 of file octave-link.h.
|
inlinestatic |
Definition at line 402 of file octave-link.h.
Referenced by F__octave_link_enabled__(), and set_workspace().
|
inlinestatic |
Definition at line 319 of file octave-link.h.
References file.
|
inlinestatic |
Definition at line 162 of file octave-link.h.
Referenced by octave_readline_hook().
|
inlinestatic |
Definition at line 266 of file octave-link.h.
References command.
|
inlinestatic |
Definition at line 329 of file octave-link.h.
References file.
|
inlinestatic |
Definition at line 335 of file octave-link.h.
Referenced by octave::base_reader::octave_gets().
|
inlinestatic |
Definition at line 240 of file octave-link.h.
References octave::sys::file_ops::dirname(), filename, and filter().
Referenced by F__octave_link_file_dialog__().
|
inlinestatic |
Definition at line 168 of file octave-link.h.
Referenced by octave_readline_hook().
|
inlinestatic |
Definition at line 70 of file octave-link.h.
Referenced by octave_readline_hook().
|
inlinestatic |
Definition at line 226 of file octave-link.h.
Referenced by F__octave_link_input_dialog__().
|
inlinestaticprivate |
Definition at line 472 of file octave-link.h.
|
inlinestatic |
Definition at line 209 of file octave-link.h.
References list, mode, and name.
Referenced by F__octave_link_list_dialog__().
|
inlinestatic |
Definition at line 193 of file octave-link.h.
Referenced by F__octave_link_message_dialog__().
|
delete |
|
inlinestatic |
Definition at line 107 of file octave-link.h.
References method.
Referenced by octave::octave_command_queue::add_cmd(), QtHandles::Canvas::canvasMouseReleaseEvent(), octave::main_window::construct(), QtHandles::Figure::editCopy(), QtHandles::Figure::eventNotifyBefore(), octave::octave_command_queue::execute_command_callback(), QtHandles::Figure::fileSaveFigure(), octave::main_window::handle_clear_command_window_request(), octave::main_window::handle_clear_history_request(), octave::main_window::handle_clear_workspace_request(), octave::file_editor_tab::handle_context_menu_break_condition(), octave::main_window::handle_load_workspace_request(), octave::main_window::handle_new_figure_request(), octave::main_window::handle_rename_variable_request(), octave::file_editor_tab::handle_request_add_breakpoint(), octave::file_editor_tab::handle_request_remove_breakpoint(), octave::main_window::handle_save_workspace_request(), octave::main_window::handle_undo_request(), octave::main_window::handle_variable_editor_update(), octave::file_editor_tab::remove_all_breakpoints(), octave::main_window::set_current_working_directory(), octave::main_window::set_screen_size(), and octave::variable_editor_model::update_data_cache().
|
inlinestatic |
Definition at line 114 of file octave-link.h.
|
inlinestatic |
Definition at line 121 of file octave-link.h.
|
inlinestatic |
Definition at line 156 of file octave-link.h.
References p.
Referenced by QtHandles::GLCanvas::do_print().
|
inlinestatic |
Definition at line 313 of file octave-link.h.
Referenced by octave::base_reader::octave_gets().
|
inlinestatic |
Definition at line 307 of file octave-link.h.
Referenced by octave::base_reader::octave_gets().
Definition at line 79 of file octave-link.h.
Referenced by octave_readline_hook().
|
inlinestatic |
Definition at line 187 of file octave-link.h.
References file.
Referenced by F__octave_link_edit_file__().
|
inlinestatic |
Definition at line 200 of file octave-link.h.
Referenced by F__octave_link_question_dialog__().
|
inlinestatic |
Definition at line 432 of file octave-link.h.
References file.
Referenced by F__octave_link_register_doc__().
|
inlineprotected |
|
inlinestatic |
Definition at line 371 of file octave-link.h.
Referenced by set_default_prompts().
|
inlinestatic |
Definition at line 289 of file octave-link.h.
Referenced by do_history(), and initialize_history().
|
static |
Definition at line 67 of file octave-link.cc.
References octave::__get_symbol_table__(), octave::symbol_table::at_top_level(), octave::symbol_table::current_scope(), debugging, do_set_workspace(), enabled(), and instance.
Referenced by octave::main_window::load_workspace_callback(), octave::base_reader::octave_gets(), octave::main_window::refresh_workspace_callback(), and octave::main_window::rename_variable_callback().
|
inlinestatic |
Definition at line 274 of file octave-link.h.
|
inlinestatic |
Definition at line 420 of file octave-link.h.
References file.
Referenced by F__octave_link_show_doc__().
|
inlinestatic |
Definition at line 408 of file octave-link.h.
Referenced by F__octave_link_show_preferences__().
|
inlinestatic |
Definition at line 444 of file octave-link.h.
References file.
Referenced by F__octave_link_unregister_doc__().
|
inlinestatic |
Definition at line 346 of file octave-link.h.
References file.
Referenced by octave::tree_statement_list::add_breakpoint(), octave::tree_statement_list::remove_all_breakpoints(), and octave::bp_table::remove_breakpoint_1().
|
protected |
Definition at line 482 of file octave-link.h.
Referenced by set_workspace().
|
protected |
Definition at line 477 of file octave-link.h.
Referenced by do_discard_events(), do_process_events(), and ~octave_link().
|
protected |
Definition at line 480 of file octave-link.h.
Referenced by do_discard_events(), and do_process_events().
|
staticprivate |
Definition at line 470 of file octave-link.h.
Referenced by connect_link(), and set_workspace().
|
protected |
Definition at line 483 of file octave-link.h.