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
|
||||
@threads << Thread.new { backend_websocket }
|
||||
|
||||
Ractor.main.send({ message: "3 o'clock 'nd all's well!" })
|
||||
|
||||
listener.join
|
||||
end
|
||||
|
||||
|
||||
@@ -1,9 +1,78 @@
|
||||
# Helper for launcher frontend to safely communicate with ractor (prevent deadlocks and concurrent access errors)
|
||||
|
||||
module W3DHubLauncher
|
||||
class Worker
|
||||
class Api
|
||||
Request = Data.define(:coming_soon)
|
||||
|
||||
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
|
||||
|
||||
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"
|
||||
|
||||
module W3DHubLauncher
|
||||
WORKER = Ractor.new { W3DHubLauncher::Worker.new }
|
||||
WORKER = Ractor.new(name: "Parallel Worker") { W3DHubLauncher::Worker.new }
|
||||
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: 1920, height: 1080, resizable: true)
|
||||
window = W3DHubLauncher::Window.new(width: 1280, height: 800, resizable: true)
|
||||
# window = W3DHubLauncher::Window.new(width: 1920, height: 1080, resizable: true)
|
||||
window.show
|
||||
|
||||
puts "HELO"
|
||||
|
||||
Reference in New Issue
Block a user