use of es.bsc.compss.types.data.operation.copy.Copy in project compss by bsc-wdc.
the class NIOAdaptor method registerCopy.
public void registerCopy(Copy c) {
for (EventListener el : c.getEventListeners()) {
Integer groupId = el.getId();
LinkedList<Copy> copies = GROUP_TO_COPY.get(groupId);
if (copies == null) {
copies = new LinkedList<Copy>();
GROUP_TO_COPY.put(groupId, copies);
}
copies.add(c);
}
}
use of es.bsc.compss.types.data.operation.copy.Copy in project compss by bsc-wdc.
the class NIOAdaptor method receivedValue.
@Override
public void receivedValue(Destination type, String dataId, Object object, List<DataRequest> achievedRequests) {
for (DataRequest dr : achievedRequests) {
MasterDataRequest mdr = (MasterDataRequest) dr;
Copy c = (Copy) mdr.getOperation();
DataLocation actualLocation = c.getSourceData().finishedCopy(c);
LogicalData tgtData = c.getTargetData();
if (tgtData != null) {
tgtData.addLocation(actualLocation);
if (object != null) {
tgtData.setValue(object);
}
}
c.end(DataOperation.OpEndState.OP_OK);
}
if (NIOTracer.isActivated()) {
NIOTracer.emitDataTransferEvent(NIOTracer.TRANSFER_END);
}
}
use of es.bsc.compss.types.data.operation.copy.Copy in project compss by bsc-wdc.
the class NIOAdaptor method copiedData.
@Override
public void copiedData(int transferGroupId) {
LOGGER.debug("Notifying copied Data to master");
LinkedList<Copy> copies = GROUP_TO_COPY.remove(transferGroupId);
if (copies == null) {
LOGGER.debug("No copies to process");
return;
}
for (Copy c : copies) {
LOGGER.debug("Treating copy " + c.getName());
if (!c.isRegistered()) {
LOGGER.debug("No registered copy " + c.getName());
continue;
}
DataLocation actualLocation = c.getSourceData().finishedCopy(c);
if (actualLocation != null) {
LOGGER.debug("Actual Location " + actualLocation.getPath());
} else {
LOGGER.debug("Actual Location is null");
}
LogicalData tgtData = c.getTargetData();
if (tgtData != null) {
LOGGER.debug("targetData is not null");
switch(actualLocation.getType()) {
case PERSISTENT:
LOGGER.debug("Persistent location no need to update location for " + tgtData.getName());
break;
case PRIVATE:
LOGGER.debug("Adding location:" + actualLocation.getPath() + " to " + tgtData.getName());
tgtData.addLocation(actualLocation);
break;
case SHARED:
LOGGER.debug("Shared location no need to update location for " + tgtData.getName());
break;
}
LOGGER.debug("Locations for " + tgtData.getName() + " are: " + tgtData.getURIs());
} else {
LOGGER.warn("No target Data defined for copy " + c.getName());
}
}
}
Aggregations