@Override protected RowMapper<ImageTransfer> createEntityRowMapper() { return (rs, rowNum) -> { ImageTransfer entity = new ImageTransfer(); entity.setId(getGuidDefaultEmpty(rs, "command_id")); entity.setCommandType(ActionType.forValue(rs.getInt("command_type"))); entity.setPhase(ImageTransferPhase.forValue(rs.getInt("phase"))); entity.setType(TransferType.forValue(rs.getInt("type"))); entity.setActive(rs.getBoolean("active")); entity.setLastUpdated(new Date(rs.getTimestamp("last_updated").getTime())); entity.setMessage(rs.getString("message")); entity.setVdsId(getGuid(rs, "vds_id")); entity.setDiskId(getGuid(rs, "disk_id")); entity.setImagedTicketId(getGuid(rs, "imaged_ticket_id")); entity.setProxyUri(rs.getString("proxy_uri")); entity.setDaemonUri(rs.getString("daemon_uri")); entity.setSignedTicket(rs.getString("signed_ticket")); entity.setBytesSent(rs.getLong("bytes_sent")); entity.setBytesTotal(rs.getLong("bytes_total")); entity.setClientInactivityTimeout((Integer) rs.getObject("client_inactivity_timeout")); return entity; }; }
private void startStatusPolling() { setContinuePolling(true); Scheduler.get().scheduleFixedDelay(() -> { log.info("Polling for status"); //$NON-NLS-1$ TransferImageStatusParameters statusParameters = new TransferImageStatusParameters(getCommandId()); ImageTransfer updates = new ImageTransfer(); updateBytesSent(updates); updates.setMessage(getProgressStr()); statusParameters.setUpdates(updates); Frontend.getInstance().runAction(ActionType.TransferImageStatus, statusParameters, this::respondToPollStatus); return isContinuePolling(); }, POLLING_DELAY_MS); }