Example #1
0
    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();
        }
    }
Example #2
0
    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();
    }
Example #3
0
        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();
                }
            }
        }
Example #4
0
        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();
                }
            }
        }