public async Task ReadAsync(TProtocol iprot, CancellationToken cancellationToken) { iprot.IncrementRecursionDepth(); try { TField field; await iprot.ReadStructBeginAsync(cancellationToken); while (true) { field = await iprot.ReadFieldBeginAsync(cancellationToken); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { Put = new TPut(); await Put.ReadAsync(iprot, cancellationToken); } else { await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); } break; case 2: if (field.Type == TType.Struct) { DeleteSingle = new TDelete(); await DeleteSingle.ReadAsync(iprot, cancellationToken); } else { await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); } break; default: await TProtocolUtil.SkipAsync(iprot, field.Type, cancellationToken); break; } await iprot.ReadFieldEndAsync(cancellationToken); } await iprot.ReadStructEndAsync(cancellationToken); } finally { iprot.DecrementRecursionDepth(); } }
public void Read(TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { Put = new TPut(); Put.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.Struct) { DeleteSingle = new TDelete(); DeleteSingle.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
public static void CheckAndDelete(string configname, string table, string rowid, string family, string columnname, object columnvalue, string[] delcolumns) { //实例化Socket连接 //transport = new TSocket("2.5.172.38", 30001); var transport = new TSocket(configname); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); byte[] tablenamebytes = Encoding.UTF8.GetBytes(table); byte[] rowidbytes = Encoding.UTF8.GetBytes(rowid); byte[] familybytes = Encoding.UTF8.GetBytes(family); byte[] columnnamebytes = Encoding.UTF8.GetBytes(columnname); byte[] columnvaluebytes = null; if (columnvalue != null) { columnvaluebytes = Serializer.TSerializer.GetBytes(columnvalue); } using (var client = new HBase.Thrift2.THBaseService.Client(tProtocol)) { transport.Open(); try { TDelete del = new TDelete(rowidbytes); if (delcolumns != null && delcolumns.Length > 0) { del.Columns = new List <TColumn>(); foreach (var col in delcolumns) { var tdelcol = new TColumn(familybytes); tdelcol.Qualifier = Encoding.UTF8.GetBytes(col); del.Columns.Add(tdelcol); } } client.checkAndDelete(tablenamebytes, rowidbytes, familybytes, columnnamebytes, columnvaluebytes, del); } finally { transport.Close(); } } }
public static void Delete(string configname, string table, string rowid) { //实例化Socket连接 //transport = new TSocket("2.5.172.38", 30001); var transport = new TSocket(configname); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); byte[] tablenamebytes = Encoding.UTF8.GetBytes(table); byte[] rowidbytes = Encoding.UTF8.GetBytes(rowid); using (var client = new HBase.Thrift2.THBaseService.Client(tProtocol)) { transport.Open(); try { TDelete del = new TDelete(rowidbytes); client.deleteSingle(tablenamebytes, del); } finally { transport.Close(); } } }