Initialization
Target audience: developers working on the integration layer.
The public startup sequence is described in Quick start. This page explains what the implementation does.
ApiModule.initialize
initialize(context) is idempotent.
For a physical terminal, RuntimeProvider is initialized with the applicationContext.
For an emulated terminal, the module skips physical runtime initialization.
ApiModule.start
start(scope) is idempotent and starts the integration asynchronously.
For an emulated terminal:
MockTerminalApiis createdstartTerminal(...)is executed within the provided scope
For a physical terminal:
TerminalApiFactoryconstructs the object graphTerminalApiImpl.startTerminal(config)is executed within the provided scopeTerminalConnectionManagerreceives the start result as connection state- the Epson printer is initialized
TerminalApiImpl.startTerminal
The startup sequence is:
- store
TerminalConnectionConfiginTerminalConnectionManager SdkRuntime.initialize(config)SdkRuntime.awaitInitialized()SdkRuntime.login()SdkRuntime.emitDeviceInformation()
Consumers should not call this method directly; see TerminalApi.