endurox.tprun¶
- endurox.tprun(server: object, args: List[str]) None ¶
Run Enduro/X ATMI server process. This transfer the control to ATMI server main loop.
ATMI Server¶import endurox as e class Server: def tpsvrinit(self, args): e.userlog('Server start') e.tpadvertise('SERVICE1', 'SERVICE1', self.SERVICE1) e.tpadvertise('SERVICE2', 'SERVICE2', self.SERVICE2) return 0 # Optional used for Multi-threaded servers # configured by <mindispatchthreads> setting. def tpsvrthrinit(self, argv): e.userlog('Thread started') return 0 # Optional used for Multi-threaded servers # configured by <mindispatchthreads> setting. def tpsvrthrdone(self): e.userlog('Thread done') def tpsvrdone(self): e.userlog('Server shutdown') # ATMI Service: def SERVICE1(self, args): return e.tpreturn(e.TPSUCCESS, 0, args.data) def SERVICE2(self, args): return e.tpreturn(e.TPSUCCESS, 0, args.data) if __name__ == '__main__': e.tprun(Server(), sys.argv)
At
Server.tpsvrinit()
server shall perform initialization, advertises, event subscriptions, configure pollers, etc. AtServer.tpsvrdone()
shutdown cleanups shall be performed.In case if ATMI service code failed, caller receives
TPESVCERR
error, the error is logged to ulog and ATMI servers main loop continues until shutdown is received (e.g. xadmin stop -y).For more details see tpsvrinit(3), tpsvrdone(3), tpservice(3), tpsvrthrinit(3), tpsvrthrdone(3) C API calls.