/// <exception cref="System.IO.IOException"/> public override void TransferBlock(ExtendedBlock blk, Org.Apache.Hadoop.Security.Token.Token <BlockTokenIdentifier> blockToken, string clientName, DatanodeInfo[] targets, StorageType [] targetStorageTypes) { DataTransferProtos.OpTransferBlockProto proto = ((DataTransferProtos.OpTransferBlockProto )DataTransferProtos.OpTransferBlockProto.NewBuilder().SetHeader(DataTransferProtoUtil .BuildClientHeader(blk, clientName, blockToken)).AddAllTargets(PBHelper.Convert( targets)).AddAllTargetStorageTypes(PBHelper.ConvertStorageTypes(targetStorageTypes )).Build()); Send(@out, OP.TransferBlock, proto); }
/// <summary> /// Receive /// <see cref="OP.TransferBlock"/> /// /// </summary> /// <exception cref="System.IO.IOException"/> private void OpTransferBlock(DataInputStream @in) { DataTransferProtos.OpTransferBlockProto proto = DataTransferProtos.OpTransferBlockProto .ParseFrom(PBHelper.VintPrefixed(@in)); DatanodeInfo[] targets = PBHelper.Convert(proto.GetTargetsList()); TraceScope traceScope = DataTransferProtoUtil.ContinueTraceSpan(proto.GetHeader() , proto.GetType().Name); try { TransferBlock(PBHelper.Convert(proto.GetHeader().GetBaseHeader().GetBlock()), PBHelper .Convert(proto.GetHeader().GetBaseHeader().GetToken()), proto.GetHeader().GetClientName (), targets, PBHelper.ConvertStorageTypes(proto.GetTargetStorageTypesList(), targets .Length)); } finally { if (traceScope != null) { traceScope.Close(); } } }