GNDMS 0.6.0
RESTful verison of GNDMS
|
A persistent marker listener for grid ftp file transfers. More...
Public Member Functions | |
void | markerArrived (Marker marker) |
FTPTransferState | getTransferState () |
void | setTransferState (FTPTransferState transferState) |
Sets the transferStat object for this marker listener. | |
boolean | hasCurrentFile () |
String | getCurrentFile () |
void | setCurrentFile (String currentFile) |
Sets file of the transfar state to currentFile. | |
Taskling | getTaskling () |
void | setTaskling (Taskling taskling) |
Dao | getDao () |
void | setDao (Dao dao) |
Private Member Functions | |
void | gridFTPRestartMarkerArrived (GridFTPRestartMarker marker) |
Private Attributes | |
ByteRangeList | byteRanges |
Dao | dao |
FTPTransferState | transferState |
Taskling | taskling |
Static Private Attributes | |
static Logger | logger = LoggerFactory.getLogger( PersistentMarkerListener.class ) |
A persistent marker listener for grid ftp file transfers.
It keeps track of the restart marks and stores them into a data base.
Note even after a successful transfer the data base entry isn't deleted you have to do this manually using derby's ij tool.
User: mjorra, Date: 01.10.2008, Time: 13:27:12
void de.zib.gndms.taskflows.filetransfer.server.network.PersistentMarkerListener.setCurrentFile | ( | String | currentFile | ) |
Sets file of the transfar state to currentFile.
Additionally the current ftp args of the state are resetted. The new state is written to the database immediately.
Reimplemented in de.zib.gndms.taskflows.filetransfer.server.logic.TaskPersistentMarkerListener.
{ final Session session = dao.beginSession(); try { transferState.setCurrentFile( currentFile ); transferState.setFtpArgs("0-0"); taskling.getTask(session).setPayload(transferState); session.success(); } finally { session.finish(); } }
void de.zib.gndms.taskflows.filetransfer.server.network.PersistentMarkerListener.setTransferState | ( | FTPTransferState | transferState | ) |
Sets the transferStat object for this marker listener.
If the object isn't persisted yet, this method persist it. For this reason the state object needs it transferId to be set.
{ this.transferState = transferState; byteRanges = new ByteRangeList(); final Session session = dao.beginSession(); try { taskling.getTask(session).setPayload(transferState); if (transferState.getFtpArgs() != null) { GridFTPRestartMarker rm = new GridFTPRestartMarker(( transferState.getFtpArgsString()) ); byteRanges.merge(rm.toVector()); } session.success(); } finally { session.finish(); } }