PlaceOS::Driver::Proxy::RemoteDriver
Inherits Reference < Object
Constants
CORE_NAMESPACE = "core"
Constructors
new(sys_id : String, module_name : String, index : Int32, discovery : Clustering::Discovery = RemoteDriver.default_discovery, user_id : String | Nil = nil, &edge_id : String -> String)
Sourcenew(module_id : String, sys_id : String, module_name : String, index : Int32 = 1, discovery : Clustering::Discovery = RemoteDriver.default_discovery, user_id : String | Nil = nil, &edge_id : String -> String)
SourceClass methods
default_discovery
Sourceget_parts(module_id : String | Symbol) : Tuple(String, Int32)
Extract module name and module id from string e.g. "Display_3" => {"Display", 3} "Display" => {"Display", 1} "My_Display" => {"My_Display", 1}
Instance methods
[](status)
Source[]?(status)
Sourcedebug(request_id : String | Nil = nil)
Returns a websocket that sends debugging logging to the remote
Each message consists of an array [0, "message"]
Easiest way to parse is: Tuple(Logger::Severity, String).from_json(%([0, "test"]))
exec(security : Clearance, function : String, args = nil, named_args = nil, request_id : String | Nil = nil, user_id : String | Nil = @user_id) : Tuple(String, Int32)
Executes a request against the appropriate core and returns the JSON result
function_present?(function : String) : Bool
Sourcefunction_visible?(security : Clearance, function : String)
Sourceindex
Sourcemetadata
Sourcemetadata?
Sourcemodule_id
Sourcemodule_id?
Sourcemodule_name
Sourcestatus(klass, key)
Sourcestatus
Sourcestatus?(klass, key)
Sourcesubscribe(subscriptions : Proxy::Subscriptions, status, &callback : Driver::Subscriptions::IndirectSubscription, String -> Nil) : Driver::Subscriptions::IndirectSubscription
All subscriptions to external drivers should be indirect as the driver might be swapped into a completely different system - whilst we've looked up the id of this instance of a driver, it's expected that this object is short lived
sys_id
Source