mirror of
https://github.com/cyberarm/w3d_hub_linux_launcher.git
synced 2026-05-06 09:28:18 +00:00
Tweak tweak
This commit is contained in:
@@ -10,6 +10,8 @@ module W3DHubLauncher
|
|||||||
# connect to and monitor Backend web service
|
# connect to and monitor Backend web service
|
||||||
@threads << Thread.new { backend_websocket }
|
@threads << Thread.new { backend_websocket }
|
||||||
|
|
||||||
|
Ractor.main.send({ message: "3 o'clock 'nd all's well!" })
|
||||||
|
|
||||||
listener.join
|
listener.join
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,78 @@
|
|||||||
|
# Helper for launcher frontend to safely communicate with ractor (prevent deadlocks and concurrent access errors)
|
||||||
|
|
||||||
module W3DHubLauncher
|
module W3DHubLauncher
|
||||||
class Worker
|
class Worker
|
||||||
class Api
|
class Api
|
||||||
Request = Data.define(:coming_soon)
|
Request = Data.define(:coming_soon)
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
|
@requests = []
|
||||||
|
end
|
||||||
|
|
||||||
|
# downloads requested resource, returns raw string
|
||||||
|
def fetch_url
|
||||||
|
end
|
||||||
|
|
||||||
|
# downloads requested resource, periodically reporting progress until completion, returning path for file on disk
|
||||||
|
def download_url
|
||||||
|
end
|
||||||
|
|
||||||
|
# returns user account data
|
||||||
|
#
|
||||||
|
# automatically handles signing in / refreshing token (DOES NOT remove account data if failed to refresh token due to network timeout)
|
||||||
|
def account
|
||||||
|
end
|
||||||
|
|
||||||
|
# returns launcher settings
|
||||||
|
def settings
|
||||||
|
end
|
||||||
|
|
||||||
|
# write updated launcher settings
|
||||||
|
def update_settings
|
||||||
|
end
|
||||||
|
|
||||||
|
# returns list of available applications
|
||||||
|
#
|
||||||
|
# if updated list is requested, return cached version immediately and then the updated list later.
|
||||||
|
def applications
|
||||||
|
end
|
||||||
|
|
||||||
|
# returns current list of servers as reported from GSH / cache
|
||||||
|
def servers
|
||||||
|
end
|
||||||
|
|
||||||
|
# returns news for application
|
||||||
|
def news
|
||||||
|
end
|
||||||
|
|
||||||
|
# request installation of application
|
||||||
|
#
|
||||||
|
# periodically reports progress until completion
|
||||||
|
def install_application
|
||||||
|
end
|
||||||
|
|
||||||
|
# request update of application
|
||||||
|
#
|
||||||
|
# periodically reports progress until completion
|
||||||
|
def update_application
|
||||||
|
end
|
||||||
|
|
||||||
|
# request repair of application
|
||||||
|
#
|
||||||
|
# periodically reports progress until completion
|
||||||
|
def repair_application
|
||||||
|
end
|
||||||
|
|
||||||
|
# request relocation of application
|
||||||
|
#
|
||||||
|
# periodically reports progress until completion
|
||||||
|
def move_application
|
||||||
|
end
|
||||||
|
|
||||||
|
# request removal of application
|
||||||
|
#
|
||||||
|
# periodically reports progress until completion
|
||||||
|
def uninstall_application
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
4
lib/worker/task.rb
Normal file
4
lib/worker/task.rb
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
module W3DHubLauncher
|
||||||
|
class Task
|
||||||
|
end
|
||||||
|
end
|
||||||
0
lib/worker/tasks/install_application.rb
Normal file
0
lib/worker/tasks/install_application.rb
Normal file
0
lib/worker/tasks/repair_application.rb
Normal file
0
lib/worker/tasks/repair_application.rb
Normal file
0
lib/worker/tasks/uninstall_application.rb
Normal file
0
lib/worker/tasks/uninstall_application.rb
Normal file
0
lib/worker/tasks/update_application.rb
Normal file
0
lib/worker/tasks/update_application.rb
Normal file
0
lib/worker/w3dhub_api.rb
Normal file
0
lib/worker/w3dhub_api.rb
Normal file
@@ -13,13 +13,23 @@ require_relative "lib/worker"
|
|||||||
require_relative "lib/worker/api"
|
require_relative "lib/worker/api"
|
||||||
|
|
||||||
module W3DHubLauncher
|
module W3DHubLauncher
|
||||||
WORKER = Ractor.new { W3DHubLauncher::Worker.new }
|
WORKER = Ractor.new(name: "Parallel Worker") { W3DHubLauncher::Worker.new }
|
||||||
end
|
end
|
||||||
|
|
||||||
W3DHubLauncher::WORKER.send({ type: :fetch, cache: true, uri: "https://github.com" })
|
# Hello, I exist because there presently exists no way to ask if there are pending
|
||||||
|
# messages in our ractors mailbox without making a blocking call which is a big no no
|
||||||
|
# for a GUI application. :|
|
||||||
|
#
|
||||||
|
# Keep an eye on: https://bugs.ruby-lang.org/issues/21930: "Add Ractor#empty? method to check for pending messages without blocking"
|
||||||
|
#
|
||||||
|
# NOTE: May need to mangle Window#update to do ruby-land sleep so thread gets time to process :(
|
||||||
|
Thread.new do
|
||||||
|
loop do
|
||||||
|
message = Ractor.receive
|
||||||
|
pp message
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# window = W3DHubLauncher::Window.new(width: 1280, height: 800, resizable: true)
|
window = W3DHubLauncher::Window.new(width: 1280, height: 800, resizable: true)
|
||||||
window = W3DHubLauncher::Window.new(width: 1920, height: 1080, resizable: true)
|
# window = W3DHubLauncher::Window.new(width: 1920, height: 1080, resizable: true)
|
||||||
window.show
|
window.show
|
||||||
|
|
||||||
puts "HELO"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user