/// <exception cref="System.IO.IOException"/> public override void ReadBlock(ExtendedBlock blk, Org.Apache.Hadoop.Security.Token.Token <BlockTokenIdentifier> blockToken, string clientName, long blockOffset, long length , bool sendChecksum, CachingStrategy cachingStrategy) { DataTransferProtos.OpReadBlockProto proto = ((DataTransferProtos.OpReadBlockProto )DataTransferProtos.OpReadBlockProto.NewBuilder().SetHeader(DataTransferProtoUtil .BuildClientHeader(blk, clientName, blockToken)).SetOffset(blockOffset).SetLen(length ).SetSendChecksums(sendChecksum).SetCachingStrategy(GetCachingStrategy(cachingStrategy )).Build()); Send(@out, OP.ReadBlock, proto); }
/// <summary>Receive OP_READ_BLOCK</summary> /// <exception cref="System.IO.IOException"/> private void OpReadBlock() { DataTransferProtos.OpReadBlockProto proto = DataTransferProtos.OpReadBlockProto.ParseFrom (PBHelper.VintPrefixed(@in)); TraceScope traceScope = DataTransferProtoUtil.ContinueTraceSpan(proto.GetHeader() , proto.GetType().Name); try { ReadBlock(PBHelper.Convert(proto.GetHeader().GetBaseHeader().GetBlock()), PBHelper .Convert(proto.GetHeader().GetBaseHeader().GetToken()), proto.GetHeader().GetClientName (), proto.GetOffset(), proto.GetLen(), proto.GetSendChecksums(), (proto.HasCachingStrategy () ? GetCachingStrategy(proto.GetCachingStrategy()) : CachingStrategy.NewDefaultStrategy ())); } finally { if (traceScope != null) { traceScope.Close(); } } }