Files
P42_UI/app/libs/Windoz/WindozBusModel.js
T
2025-10-14 16:31:07 +00:00

52 lines
1.7 KiB
JavaScript

/**
* @category MyEic
* @subcategory Libraries
* @extends WindozModel
*/
class WindozBusModel extends WindozModel{
/**
* Makes a request to WSSGateway
*/
busWssGwRequest(action, payload = {}){
if(!app.MessageBus) return(new Promise((ok, ko) => ko))
if(!app.MessageBus.connected){ // bus not connected => Queue until connected, with 20 sec timeout
return(
app.MessageBus.whenConnectedP(20000).then(()=>{
return(app.MessageBus.requestWssGwAction(action, payload))
},
()=>{
console.log('Timeout waiting for connection !')
})
)
}
return(app.MessageBus.requestWssGwAction(action, payload))
}
/**
* Makes an action request on the bus
*/
busActionRequest(chan, action, payload = {}){
if(!app.MessageBus) return(new Promise((ok, ko) => ko))
if(!app.MessageBus.connected){ // bus not connected => Queue until connected, with 20 sec timeout
return(
app.MessageBus.whenConnectedP(20000).then(()=>{
return(app.MessageBus.requestBusAction(chan, action, payload))
},
()=>{
console.log('Timeout waiting for connection !')
})
)
}
return(app.MessageBus.requestBusAction(chan, action, payload))
}
busEvent(chan, event, payload) {
if( (!app.MessageBus) || (!app.MessageBus.connected) ) return(new Promise((ok, ko) => ko))
app.MessageBus.sendEvent(chan, event, payload)
}
}
app.registerClass('WindozBusModel', WindozBusModel)