public class SGet extends TypedAtomicActor
SGet is a Kepler Actor which has a functionality similar to the SRB command namely "Sget". Sget exports one or more objects from SRB space into the local file system. SGet actor downloads an SRB file to the local drive. The following actor expects as input a reference to the SRB file system. This reference connection is obtained via the SRBConnect Actor in Kepler. See SRBConnect and its documentation.
The file reference system is created with a unique SRB user account and with this connection reference as input the SGet actor is able to gain access to various files on the SRB file systems. Once an alive SRB file connection system has been established the actor gets the local directory and the files to establish the SRB file path. If the SRB directory doesn't exist, a new directory is created. Once the SRB files path are determined, the files are copied from the SRB file space to the local drive.In case the above process of parallel copy fails, a streaming copy process is carried out with SRBRandomAccess streams where the file is downloaded as a sequence of byte arrays.
The user is also asked for confirmation on overwriting existing local files if they exist or simply appending them.
Actor Input: Accepts a reference to the SRB files system, a local directory and an aray of SRB remote file paths.
Actor Output: Outputs the local file paths and an exit status. The exit status gives a message of "success" or appropriate error to indicate the status of file get process.
The following actor accesses SRB file reference system and SRB file space with the SRB Jargon API provided. The JARGON is a pure API for developing programs with a data grid interface and I/O for SRB file systems.
Further information on SRBEntity.ContainedObjectsIterator
Modifier and Type | Field and Description |
---|---|
Parameter |
append
Append when SRB file is copied to loalFile
|
Parameter |
confirmOverwrite
Overwrite when SRB file is copied to loalFile
|
TypedIOPort |
exitCode
Exit status of the operation.
|
TypedIOPort |
fetchedFiles
Paths to the local location.
|
TypedIOPort |
filesToGet
Paths to the SRB files to fetch
|
TypedIOPort |
localDir
Where to fetch the files on the local drive.
|
FileParameter |
localDirParameter
Where to fetch the files on the local drive.
|
TypedIOPort |
SRBFileSystem
SRB file system reference.
|
_typesValid
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
COMPLETED, NOT_READY, STOP_ITERATING
Constructor and Description |
---|
SGet(CompositeEntity container,
java.lang.String name)
Construct a constant source with the given container and name.
|
Modifier and Type | Method and Description |
---|---|
void |
fire()
Upload the file to the SRB.
|
void |
initialize()
Initialize the srb file system to null.
|
boolean |
postfire()
Post fire the actor.
|
void |
wrapup()
Reset the _refire variable and disconnect
|
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
isFireFunctional, isStrict, iterate, prefire, stop, stopFire, terminate
addInitializable, preinitialize, removeInitializable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
getDerivedLevel, getDerivedList, propagateValue
public TypedIOPort SRBFileSystem
public TypedIOPort filesToGet
public TypedIOPort fetchedFiles
public TypedIOPort exitCode
public TypedIOPort localDir
public FileParameter localDirParameter
public Parameter confirmOverwrite
public SGet(CompositeEntity container, java.lang.String name) throws NameDuplicationException, IllegalActionException
container
- The container.name
- The name of this actor.IllegalActionException
- If the entity cannot be contained by the proposed
container.NameDuplicationException
- If the container already has an actor with this name.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor<TypedIOPort>
IllegalActionException
- If it is thrown if the SRB file cannot be accessed or the
current directory cannot be broadcasted.public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor<TypedIOPort>
IllegalActionException
- If a derived class throws it.public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class AtomicActor<TypedIOPort>
IllegalActionException
- Not thrown in this base class.public void wrapup()
wrapup
in interface Initializable
wrapup
in class AtomicActor<TypedIOPort>