Package com.iizix.server.client
Class ClientTransactionProcessor
java.lang.Object
com.iizix.server.client.ClientTransactionProcessor
- All Implemented Interfaces:
IClientTransactionProcessor,ITransactionCreator,ITransactionProcessor,ITransactionSender,IRootPropTransactionSender
public class ClientTransactionProcessor extends Object implements IClientTransactionProcessor, IRootPropTransactionSender
The TransactionProcessor contains all the code required to process transactions with the application being run for a single client reconnectable connection. If parallel client sessions is enabled or allowed, a single AppSessionGyro is shared.
- Author:
- Christopher Mindus
Method Summary
Modifier and TypeMethodDescriptionvoidappendPublicKey(SendTransaction trans) Appends the server public key for the Diffie-Hellman key exchange with the client.voidcloseClient(String msg) Sends an HTML message to be displayed on the client that will immediately close the connection.Creates a transaction with the configured write cache.getClientContextMenuReference(UIContextMenu contextMenu) Gets the reference to use for a context menu.Gets the client parameters.Gets the client properties.intReturns the lock serial number.booleanVerifies that the connection is established and not paused, reconnecting, etc.voidonConnection(SessionTransMgr manager) Called when a connection is established.voidonDisposed(SessionTransMgr manager) Called when a connection is disposed of.voidonPause(SessionTransMgr manager) Called when a connection is paused.voidonReconnected(SessionTransMgr manager) Called when a connection is reconnected.voidPosts an update to the root property to potentially perform client transactions.voidprocessTransaction(SessionTransMgr manager, ReadTransaction trans) Process incoming transaction that itself can consist of several sub-transactions.voidRestarts the remote client.voidsendTransaction(SendTransaction trans) Sends the transaction to the remote party.voidsetBusy(boolean isBusy) Sets the client session busy state.voidSets the client session busy state.voidshowMessageInClient(int severity, String heading, String msg) Sends an error message to be displayed on the client immediately.voidUpdates the current user with a password that is encrypted in AES/CBC 256-bit.
Method Details
getClientParams
Gets the client parameters.onConnection
Called when a connection is established.- Specified by:
onConnectionin interfaceITransactionProcessor
onPause
Called when a connection is paused.- Specified by:
onPausein interfaceITransactionProcessor
onReconnected
Called when a connection is reconnected.- Specified by:
onReconnectedin interfaceITransactionProcessor
onDisposed
Called when a connection is disposed of.- Specified by:
onDisposedin interfaceITransactionProcessor
processTransaction
Process incoming transaction that itself can consist of several sub-transactions.Management transaction are not present here, but GConstants.TRANS_NEXT_SERIAL that should call
manager.onNextSerialTransaction();.- Specified by:
processTransactionin interfaceITransactionProcessor- Parameters:
trans- The transaction to process.
getClientProps
Gets the client properties.createTransaction
Creates a transaction with the configured write cache.- Specified by:
createTransactionin interfaceITransactionCreator- Returns:
- The new
Transactioninstance.
sendTransaction
Sends the transaction to the remote party.- Specified by:
sendTransactionin interfaceIRootPropTransactionSender- Specified by:
sendTransactionin interfaceITransactionSender- Parameters:
trans- The transaction.
postClientUpdate
public void postClientUpdate()Posts an update to the root property to potentially perform client transactions.isConnected
public boolean isConnected()Verifies that the connection is established and not paused, reconnecting, etc.- Specified by:
isConnectedin interfaceIRootPropTransactionSender- Returns:
- true if connected, false otherwise.
restartRemoteClient
public void restartRemoteClient()Restarts the remote client. This is done without asking anything: it will just restart the iiziRun or browser by disconnecting from server and reloading the page directly. For iiziRun Developer/Custom sessions, this will bring up that interface.showMessageInClient
Sends an error message to be displayed on the client immediately.- Parameters:
severity- The message severity (-1 none, 0=info, 1=warning, 2=error).heading- The heading text.msg- The message text.
closeClient
Sends an HTML message to be displayed on the client that will immediately close the connection.- Parameters:
msg- The message text in HTML.
setBusy
public void setBusy(boolean isBusy) Sets the client session busy state.- Parameters:
isBusy- The busy state.
setBusy
Sets the client session busy state.- Parameters:
isBusy- The busy state (must be true to display message or progress).msg- Message to display in HTML format, null for none, ignored when "ready" (busy=false).delay- Delay in milliseconds: -2=default, -1=disabled, 0=no delay, >0 to 20_000 delay in milliseconds.progress- The progress state: -1 for none, otherwise a value between 0 and 100.
getLockSerial
public int getLockSerial()Returns the lock serial number.- Returns:
- Serial between 0 and 0xFFFF.
getClientContextMenuReference
Gets the reference to use for a context menu.- Specified by:
getClientContextMenuReferencein interfaceIRootPropTransactionSender- Parameters:
contextMenu- The context menu.- Returns:
- The reference to use, empty string for none (never null).
appendPublicKey
Appends the server public key for the Diffie-Hellman key exchange with the client.- Specified by:
appendPublicKeyin interfaceIClientTransactionProcessor- Parameters:
trans- The transaction.
updateAuthentication
Updates the current user with a password that is encrypted in AES/CBC 256-bit.- Specified by:
updateAuthenticationin interfaceIClientTransactionProcessor- Parameters:
trans- The transaction- Throws:
Exception- If there is any kind of problem with the authentication, transaction, encryption or alike.