mainloop(*args)
click to toggle source
# File tk/lib/remote-tk.rb, line 494 def mainloop(*args) fail RuntimeError, 'not support "mainloop" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 500 def do_one_event(flag = nil) fail RuntimeError, 'not support "do_one_event" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 512 def get_eventloop_tick fail RuntimeError, 'not support "get_eventloop_tick" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 524 def get_eventloop_weight fail RuntimeError, 'not support "get_eventloop_weight" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 518 def get_no_event_wait fail RuntimeError, 'not support "get_no_event_wait" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 494 def mainloop(*args) fail RuntimeError, 'not support "mainloop" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 503 def mainloop_abort_on_exception fail RuntimeError, 'not support "mainloop_abort_on_exception" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 506 def mainloop_abort_on_exception=(mode) fail RuntimeError, 'not support "mainloop_abort_on_exception=" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 497 def mainloop_watchdog(*args) fail RuntimeError, 'not support "mainloop_watchdog" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 142 def self.manipulable? true end
# File tk/lib/remote-tk.rb, line 66 def initialize(remote_ip, displayof=nil, timeout=5) @interp = MultiTkIp.__getip if @interp.safe? fail SecurityError, "safe-IP cannot create RemoteTkIp" end @interp.allow_ruby_exit = false @appname = @interp._invoke('tk', 'appname') @remote = remote_ip.to_s.dup.freeze if displayof.kind_of?(TkWindow) @displayof = displayof.path.dup.freeze else @displayof = nil end if self.deleted? fail RuntimeError, "no Tk application named \"#{@remote}\"" end @tk_windows = {} @tk_table_list = [] @slave_ip_tbl = {} @slave_ip_top = {} @force_default_encoding ||= TkUtil.untrust([false]) @encoding ||= TkUtil.untrust([nil]) def @encoding.to_s; self.join(nil); end TkUtil.untrust(@tk_windows) unless @tk_windows.tainted? TkUtil.untrust(@tk_table_list) unless @tk_table_list.tainted? TkUtil.untrust(@slave_ip_tbl) unless @slave_ip_tbl.tainted? TkUtil.untrust(@slave_ip_top) unless @slave_ip_top.tainted? @system = Object.new @threadgroup = ThreadGroup.new @safe_level = [$SAFE] @wait_on_mainloop = [true, 0] @cmd_queue = Queue.new @cmd_receiver, @receiver_watchdog = _create_receiver_and_watchdog() @threadgroup.add @cmd_receiver @threadgroup.add @receiver_watchdog @threadgroup.enclose @@DEFAULT_MASTER.assign_receiver_and_watchdog(self) @@IP_TABLE[@threadgroup] = self @@TK_TABLE_LIST.size.times{ (tbl = {}).tainted? || TkUtil.untrust(tbl) @tk_table_list << tbl } @ret_val = TkVariable.new if timeout > 0 && ! _available_check(timeout) fail RuntimeError, "cannot create connection" end @ip_id = _create_connection class << self undef :instance_eval end self.freeze # defend against modification end
# File tk/lib/remote-tk.rb, line 58 def new(*args, &b) ip = __new(*args) ip.eval_proc(&b) if b ip end
# File tk/lib/remote-tk.rb, line 509 def set_eventloop_tick(*args) fail RuntimeError, 'not support "set_eventloop_tick" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 338 def __eval(str) _appsend(false, false, str) end
# File tk/lib/remote-tk.rb, line 355 def __invoke(*args) _appsend(false, false, *args) end
# File tk/lib/remote-tk.rb, line 449 def _conv_listelement(str) raise SecurityError, "no permission to manipulate" unless self.manipulable? @interp._conv_listelement(str) end
# File tk/lib/remote-tk.rb, line 454 def _create_console fail RuntimeError, 'not support "_create_console" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 341 def _eval(str) _appsend(nil, false, str) end
# File tk/lib/remote-tk.rb, line 347 def _eval_with_enc(str) _appsend(true, false, str) end
# File tk/lib/remote-tk.rb, line 344 def _eval_without_enc(str) _appsend(false, false, str) end
# File tk/lib/remote-tk.rb, line 373 def _fromUTF8(str, encoding=nil) raise SecurityError, "no permission to manipulate" unless self.manipulable? @interp._fromUTF8(str, encoding) end
# File tk/lib/remote-tk.rb, line 418 def _get_global_var(var_name) _appsend(false, 'set', TkComm::_get_eval_string(var_name)) end
# File tk/lib/remote-tk.rb, line 421 def _get_global_var2(var_name, index_name) _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})") end
# File tk/lib/remote-tk.rb, line 391 def _get_variable(var_name, flag) # ignore flag _appsend(false, 'set', TkComm::_get_eval_string(var_name)) end
# File tk/lib/remote-tk.rb, line 395 def _get_variable2(var_name, index_name, flag) # ignore flag _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})") end
# File tk/lib/remote-tk.rb, line 351 def _invoke(*args) _appsend(nil, false, *args) end
# File tk/lib/remote-tk.rb, line 364 def _invoke_with_enc(*args) _appsend(true, false, *args) end
# File tk/lib/remote-tk.rb, line 361 def _invoke_without_enc(*args) _appsend(false, false, *args) end
# File tk/lib/remote-tk.rb, line 444 def _merge_tklist(*args) raise SecurityError, "no permission to manipulate" unless self.manipulable? @interp._merge_tklist(*args) end
# File tk/lib/remote-tk.rb, line 386 def _return_value raise SecurityError, "no permission to manipulate" unless self.manipulable? @interp._return_value end
# File tk/lib/remote-tk.rb, line 425 def _set_global_var(var_name, value) _appsend(false, 'set', TkComm::_get_eval_string(var_name), TkComm::_get_eval_string(value)) end
# File tk/lib/remote-tk.rb, line 428 def _set_global_var2(var_name, index_name, value) _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})", TkComm::_get_eval_string(value)) end
# File tk/lib/remote-tk.rb, line 400 def _set_variable(var_name, value, flag) # ignore flag _appsend(false, 'set', TkComm::_get_eval_string(var_name), TkComm::_get_eval_string(value)) end
# File tk/lib/remote-tk.rb, line 404 def _set_variable2(var_name, index_name, value, flag) # ignore flag _appsend(false, 'set', "#{TkComm::_get_eval_string(var_name)}(#{TkComm::_get_eval_string(index_name)})", TkComm::_get_eval_string(value)) end
# File tk/lib/remote-tk.rb, line 439 def _split_tklist(str) raise SecurityError, "no permission to manipulate" unless self.manipulable? @interp._split_tklist(str) end
# File tk/lib/remote-tk.rb, line 382 def _thread_tkwait(mode, target) _appsend(false, 'thread_tkwait', mode, target) end
# File tk/lib/remote-tk.rb, line 378 def _thread_vwait(var_name) _appsend(false, 'thread_vwait', varname) end
# File tk/lib/remote-tk.rb, line 368 def _toUTF8(str, encoding=nil) raise SecurityError, "no permission to manipulate" unless self.manipulable? @interp._toUTF8(str, encoding) end
# File tk/lib/remote-tk.rb, line 432 def _unset_global_var(var_name) _appsend(false, 'unset', TkComm::_get_eval_string(var_name)) end
# File tk/lib/remote-tk.rb, line 435 def _unset_global_var2(var_name, index_name) _appsend(false, 'unset', "#{var_name}(#{index_name})") end
# File tk/lib/remote-tk.rb, line 409 def _unset_variable(var_name, flag) # ignore flag _appsend(false, 'unset', TkComm::_get_eval_string(var_name)) end
# File tk/lib/remote-tk.rb, line 413 def _unset_variable2(var_name, index_name, flag) # ignore flag _appsend(false, 'unset', "#{var_name}(#{index_name})") end
# File tk/lib/remote-tk.rb, line 290 def allow_ruby_exit= (mode) fail RuntimeError, 'cannot change mode of the remote interpreter' end
# File tk/lib/remote-tk.rb, line 286 def allow_ruby_exit? false end
# File tk/lib/remote-tk.rb, line 237 def appsend(async, *args) raise SecurityError, "no permission to manipulate" unless self.manipulable? if async != true && async != false && async != nil args.unshift(async) async = false end if @displayof Tk.appsend_displayof(@remote, @displayof, async, *args) else Tk.appsend(@remote, async, *args) end end
# File tk/lib/remote-tk.rb, line 265 def create_slave(name, safe=false) if safe safe_opt = '' else safe_opt = '-safe' end _appsend(false, false, "interp create #{safe_opt} -- #{name}") end
# File tk/lib/remote-tk.rb, line 294 def delete _appsend(false, true, 'exit') end
# File tk/lib/remote-tk.rb, line 298 def deleted? raise SecurityError, "no permission to manipulate" unless self.manipulable? if @displayof lst = @interp._invoke_without_enc('winfo', 'interps', '-displayof', @displayof) else lst = @interp._invoke_without_enc('winfo', 'interps') end # unless @interp._split_tklist(lst).index(@remote) unless @interp._split_tklist(lst).index(_toUTF8(@remote)) true else false end end
# File tk/lib/remote-tk.rb, line 464 def do_one_event(flag = nil) fail RuntimeError, 'not support "do_one_event" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 476 def get_eventloop_tick fail RuntimeError, 'not support "get_eventloop_tick" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 488 def get_eventloop_weight fail RuntimeError, 'not support "get_eventloop_weight" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 482 def get_no_event_wait fail RuntimeError, 'not support "get_no_event_wait" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 315 def has_mainwindow? raise SecurityError, "no permission to manipulate" unless self.manipulable? begin inf = @interp._invoke_without_enc('info', 'command', '.') rescue Exception return nil end if !inf.kind_of?(String) || inf != '.' false else true end end
# File tk/lib/remote-tk.rb, line 330 def invalid_namespace? false end
# File tk/lib/remote-tk.rb, line 231 def is_rubytk? return false if _appsend(false, false, 'info', 'command', 'ruby') == "" [ _appsend(false, false, 'ruby', 'RUBY_VERSION'), _appsend(false, false, 'set', 'tk_patchLevel') ] end
# File tk/lib/remote-tk.rb, line 458 def mainloop fail RuntimeError, 'not support "mainloop" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 467 def mainloop_abort_on_exception fail RuntimeError, 'not support "mainloop_abort_on_exception" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 470 def mainloop_abort_on_exception=(mode) fail RuntimeError, 'not support "mainloop_abort_on_exception=" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 461 def mainloop_watchdog fail RuntimeError, 'not support "mainloop_watchdog" on the remote interpreter' end
# File tk/lib/remote-tk.rb, line 274 def make_safe fail RuntimeError, 'cannot change safe mode of the remote interpreter' end
# File tk/lib/remote-tk.rb, line 138 def manipulable? return true if (Thread.current.group == ThreadGroup::Default) MultiTkIp.__getip == @interp && ! @interp.safe? end
# File tk/lib/remote-tk.rb, line 251 def rb_appsend(async, *args) raise SecurityError, "no permission to manipulate" unless self.manipulable? if async != true && async != false && async != nil args.unshift(async) async = false end if @displayof Tk.rb_appsend_displayof(@remote, @displayof, async, *args) else Tk.rb_appsend(@remote, async, *args) end end
# File tk/lib/remote-tk.rb, line 224 def ready?(timeout=5) if timeout < 0 fail ArgumentError, "timeout must be positive number" end _available_check(timeout) end
# File tk/lib/remote-tk.rb, line 334 def restart fail RuntimeError, 'cannot restart the remote interpreter' end
# File tk/lib/remote-tk.rb, line 278 def safe? _appsend(false, false, 'interp issafe') end
# File tk/lib/remote-tk.rb, line 473 def set_eventloop_tick(*args) fail RuntimeError, 'not support "set_eventloop_tick" on the remote interpreter' end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.