//TotalStringKeyCount ==========================================================================================
        public bool TotalStringKeyCount(ref long count)
        {
            lock (_object)
            {
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }
                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }
                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();

                var totalStringKeyCountAsync = _aClient.totalStringKeyCountAsync();
                if (totalStringKeyCountAsync.IsFaulted || totalStringKeyCountAsync.IsCanceled)
                {
                    Console.WriteLine("totalStringKeyCountAsync.IsFaulted");
                    count = 0;
                    clientInfo.cleanUp();
                    return(false);
                }
                count = totalStringKeyCountAsync.Result;
                clientInfo.cleanUp();
                return(true);
            }
        }
 //BsRemoveKeyBs=================================================================================================
 public bool BsRemoveKeyBs(string bsKey, ref long totalCount)
 {
     lock (_object)
     {
         TClientInfo clientInfo = _setClient.getClient();
         if (!clientInfo.isOpen())
         {
             clientInfo.doOpen();
         }
         if (!clientInfo.sureOpen())
         {
             Thread.Sleep(1 * 100);
             if (!clientInfo.sureOpen())
             {
                 Console.WriteLine("Can't open");
                 return(false);
             }
         }
         _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();
         var removeAllAsync = _aClient.removeAllAsync(bsKey);
         if (removeAllAsync.IsCanceled || removeAllAsync.IsFaulted)
         {
             clientInfo.cleanUp();
             return(false);
         }
         totalCount = removeAllAsync.Result;
         clientInfo.cleanUp();
         return(true);
     }
 }
        // BsRangeQueryByPage get >= startkey && <= endkey có chia page theo begin and end==============================
        public bool BsRangeQueryByPage(string bsKey, string startItemKey, string endItemKey, long begin, long end,
                                       ref TItemSetResult itemSetResult, ref long total)
        {
            lock (_object)
            {
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }
                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }
                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();

                byte[] BstartItemKey;
                byte[] BendItemKey;
                try
                {
                    BstartItemKey = Encoding.UTF8.GetBytes(startItemKey);
                    BendItemKey   = Encoding.UTF8.GetBytes(endItemKey);
                }
                catch (Exception e)
                {
                    Console.WriteLine("error " + e.ToString());
                    clientInfo.cleanUp();
                    return(false);
                }

                var bsRangeQueryAsync = _aClient.bsRangeQueryAsync(bsKey, BstartItemKey, BendItemKey);

                if (bsRangeQueryAsync.Result.Items.Items.Count < 1)
                {
                    clientInfo.cleanUp();
                    return(false);
                }

                if (begin < 0)
                {
                    begin = 0;
                }

                if (end > bsRangeQueryAsync.Result.Items.Items.Count)
                {
                    end = bsRangeQueryAsync.Result.Items.Items.Count;
                }

                total = bsRangeQueryAsync.Result.Items.Items.Count;

                itemSetResult.Items.Items.CopyTo(Convert.ToInt32(begin), bsRangeQueryAsync.Result.Items.Items.ToArray(), 0, Convert.ToInt32(end - begin));
                clientInfo.cleanUp();
                return(false);
            }
        }
        // BsGetSliceByArray get by position begin -> end
        public bool BsGetSliceByArray(string bsKey, int begin, int count, ref TItemSetResult itemSetResult)
        {
            TClientInfo clientInfo = _setClient.getClient();

            if (!clientInfo.isOpen())
            {
                clientInfo.doOpen();
            }
            if (!clientInfo.sureOpen())
            {
                Thread.Sleep(1 * 100);
                if (!clientInfo.sureOpen())
                {
                    Console.WriteLine("Can't open");
                    return(false);
                }
            }
            _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();
            var bsGetSliceRAsync = _aClient.bsGetSliceRAsync(bsKey, begin, count);

            if (bsGetSliceRAsync.IsCanceled || bsGetSliceRAsync.IsFaulted)
            {
                Console.WriteLine("bsGetSliceRAsync.IsCanceled || bsGetSliceRAsync.IsFaulted");
                clientInfo.cleanUp();
                return(false);
            }
            if (bsGetSliceRAsync.Result.Items.Items.Count < 1)
            {
                clientInfo.cleanUp();
                return(false);
            }
            itemSetResult = bsGetSliceRAsync.Result;
            clientInfo.cleanUp();
            return(true);
        }
        // BsRangeQuery get >= startkey && <= endkey
        public bool BsRangeQuery(string bsKey, string startItemKey, string endItemKey, ref TItemSetResult itemSetResult)
        {
            lock (_object)
            {
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }
                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }
                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();

                byte[] BstartItemKey;
                byte[] BendItemKey;
                try
                {
                    BstartItemKey = Encoding.UTF8.GetBytes(startItemKey);
                    BendItemKey   = Encoding.UTF8.GetBytes(endItemKey);
                }
                catch (Exception e)
                {
                    Console.WriteLine("error " + e.ToString());
                    clientInfo.cleanUp();
                    return(false);
                }


                var bsRangeQueryAsync = _aClient.bsRangeQueryAsync(bsKey, BstartItemKey, BendItemKey);
                if (bsRangeQueryAsync.IsCanceled || bsRangeQueryAsync.IsFaulted)
                {
                    Console.WriteLine("bsRangeQueryAsync.IsCanceled || bsRangeQueryAsync.IsFaulted");
                    clientInfo.cleanUp();
                    return(false);
                }


                itemSetResult = bsRangeQueryAsync.Result;
                if (itemSetResult.Items.Items.Count < 1)
                {
                    clientInfo.cleanUp();
                    return(false);
                }
                clientInfo.cleanUp();
                return(true);
            }
        }
        // BsGetSlice get all
        public bool BsGetSlice(string bsKey, ref TItemSetResult itemSetResult)
        {
            lock (_object){
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }

                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }
                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();

                var getTotalCountAsync = _aClient.getTotalCountAsync(bsKey);
                if (getTotalCountAsync.IsCanceled || getTotalCountAsync.IsFaulted)
                {
                    Console.WriteLine("getTotalCountAsync.IsCanceled || getTotalCountAsync.IsFaulted");
                    clientInfo.cleanUp();
                    return(false);
                }
                long totalCount = getTotalCountAsync.Result;
                //Console.WriteLine("Count "+totalCount);
                int count = Convert.ToInt32(totalCount);
                if (count < 1)
                {
                    clientInfo.cleanUp();
                    return(false);
                }
                var bsGetSliceRAsync = _aClient.bsGetSliceRAsync(bsKey, 0, count);
                if (bsGetSliceRAsync.IsCanceled || bsGetSliceRAsync.IsFaulted)
                {
                    Console.WriteLine("bsGetSliceRAsync.IsCanceled || bsGetSliceRAsync.IsFaulted");
                    clientInfo.cleanUp();
                    return(false);
                }
                itemSetResult = bsGetSliceRAsync.Result;

                clientInfo.cleanUp();
                return(true);
            }
        }
 //CheckBsExisted================================================================================================
 public bool CheckBsExisted(string bsKey, string itemKey)
 {
     lock (_object)
     {
         TClientInfo clientInfo = _setClient.getClient();
         if (!clientInfo.isOpen())
         {
             clientInfo.doOpen();
         }
         if (!clientInfo.sureOpen())
         {
             Thread.Sleep(1 * 100);
             if (!clientInfo.sureOpen())
             {
                 Console.WriteLine("Can't open");
                 return(false);
             }
         }
         _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();
         byte[] bitemKey;
         try
         {
             bitemKey = Encoding.UTF8.GetBytes(itemKey);
         }
         catch (Exception e)
         {
             Console.WriteLine(e);
             clientInfo.cleanUp();
             return(false);
         }
         var bsExistedAsyncs = _aClient.bsExistedAsync(bsKey, bitemKey);
         if (bsExistedAsyncs.IsCanceled || bsExistedAsyncs.IsFaulted)
         {
             Console.WriteLine("bsExistedAsyncs.IsFaulted");
             clientInfo.cleanUp();
             return(false);
         }
         clientInfo.cleanUp();
         return(bsExistedAsyncs.Result.Existed);
     }
 }
        //g// GetTotalCount return number item of bskey
        public bool GetTotalCount(string bsKey, ref long count)
        {
            lock (_object)
            {
                count = 0;
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }
                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }
                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();

                var getTotalCountAsync = _aClient.getTotalCountAsync(bsKey);
                if (getTotalCountAsync.IsFaulted || getTotalCountAsync.IsCanceled)
                {
                    Console.WriteLine("getTotalCountAsync.IsFaulted");
                    clientInfo.cleanUp();
                    return(false);
                }

                long totalCount = getTotalCountAsync.Result;
                if (totalCount < 1)
                {
                    clientInfo.cleanUp();
                    return(false);
                }
                count = totalCount;
                clientInfo.cleanUp();
                return(true);
            }
        }
        // BsGetItem get item by bskey and itemkey
        public bool BsGetItem(string bsKey, string key, ref TItem item)
        {
            lock (_object)
            {
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }

                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }
                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();

                var bsGetItemAsync = _aClient.bsGetItemAsync(bsKey, Encoding.ASCII.GetBytes(key));
                if (bsGetItemAsync.IsCanceled || bsGetItemAsync.IsCanceled)
                {
                    clientInfo.cleanUp();
                    return(false);
                }
                if (bsGetItemAsync.Result.Item == null)
                {
                    Console.WriteLine("Item not exists");
                    return(false);
                }
                item = bsGetItemAsync.Result.Item;

                clientInfo.cleanUp();
                return(true);
            }
        }
        public bool BsgMultiPutItem(string[] keys, TItem item)
        {
            lock (_object)
            {
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }

                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }

                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();

                foreach (var key in keys)
                {
                    var bsPutItemAsync = _aClient.bsPutItemAsync(key, item);
                    if (bsPutItemAsync.IsCompleted == false)
                    {
                        bsPutItemAsync.Wait();
                        if (bsPutItemAsync.IsCompleted == false)
                        {
                            return(false);
                        }
                    }
                }
                clientInfo.cleanUp();
                return(true);
            }
        }
        //GetListKey ==================================================================================================
        public bool GetListKey(long fromIndex, int count, List <String> listKey)
        {
            lock (_object)
            {
                TClientInfo clientInfo = _setClient.getClient();
                if (!clientInfo.isOpen())
                {
                    clientInfo.doOpen();
                }
                if (!clientInfo.sureOpen())
                {
                    Thread.Sleep(1 * 100);
                    if (!clientInfo.sureOpen())
                    {
                        Console.WriteLine("Can't open");
                        return(false);
                    }
                }
                _aClient = (TStringBigSetKVService.Client)clientInfo.getClient();
                var getListKeyAsync = _aClient.getListKeyAsync(fromIndex, count);
                if (getListKeyAsync.IsCanceled || getListKeyAsync.IsFaulted)
                {
                    Console.WriteLine("getListKeyAsync.IsCanceled || getListKeyAsync.IsFaulted");
                    clientInfo.cleanUp();
                    return(false);
                }

                if (getListKeyAsync.Result.Count < 1)
                {
                    clientInfo.cleanUp();
                    return(false);
                }
                listKey = getListKeyAsync.Result;
                clientInfo.cleanUp();
                return(true);
            }
        }
Esempio n. 12
0
        public static void Main()
        {
            try
            {
                IPAddress        ipaddress           = IPAddress.Parse("127.0.0.1");
                TTransport       transport           = new TSocketTransport(ipaddress, 18990, 100000);
                TFramedTransport tFrameTransport     = new TFramedTransport(transport);
                TProtocol        protocol            = new TBinaryProtocol(tFrameTransport);
                TStringBigSetKVService.Client client = new TStringBigSetKVService.Client(protocol);

                client.OpenTransportAsync();
                Console.WriteLine("transport.IsOpen");
                Console.WriteLine(transport.IsOpen);

                if (transport.IsOpen)
                {
                    // Book book = new Book();
                    // book.Author = "Auth";
                    // book.Category = "Category";
                    // book.Id = "12123";
                    // book.Price = 10123;
                    // book.BookName = "Book Name";
                    //
                    // var bookJson = JsonConvert.SerializeObject(book);
                    // var bJson = Encoding.ASCII.GetBytes(bookJson);;
                    // var str = Encoding.UTF8.GetString(bJson);
                    // // Console.WriteLine(bJson);
                    // Console.WriteLine(str);
                    // var tItem = new TItem();
                    // tItem.Key = Encoding.ASCII.GetBytes(book.Id);
                    // tItem.Value = bJson;
                    //
                    // var bsPutItemAsync = client.bsPutItemAsync("Test", tItem);
                    // Console.WriteLine(bsPutItemAsync.IsCompleted);
                    // if (bsPutItemAsync.IsCompleted == false)
                    // {
                    //     bsPutItemAsync.Wait();
                    // }
                    // // ========================

                    // var serializeObject = JsonConvert.SerializeObject(bsPutItemAsync);
                    // Console.WriteLine(serializeObject);

                    // Get data from thrift
                    var bsGetItemAsync = client.bsGetItemAsync("Test", Encoding.ASCII.GetBytes("12123"));
                    // bsGetItemAsync.Start();
                    // bsGetItemAsync.RunSynchronously();

                    Console.WriteLine("serializeObject: ");
                    Console.WriteLine(bsGetItemAsync.IsCanceled);
                    Console.WriteLine(bsGetItemAsync.IsFaulted);
                    Console.WriteLine(bsGetItemAsync.IsCompleted);
                    if (bsGetItemAsync.IsCompleted == false)
                    {
                        Console.WriteLine("bsGetItemAsync.IsCompleted == false");
                        bsGetItemAsync.Wait();
                    }
                    Console.WriteLine(bsGetItemAsync.IsCompletedSuccessfully);
                    Console.WriteLine(bsGetItemAsync.Status);
                    Console.WriteLine(bsGetItemAsync.Id);
                    // bsGetItemAsync.Wait();

                    Console.WriteLine(bsGetItemAsync.ToString());
                    // Console.WriteLine(bsGetItemAsync.Result.Item.Value);
                    var obj = Encoding.UTF8.GetString(bsGetItemAsync.Result.Item.Value);
                    Console.WriteLine(obj);
                    // ==========================



                    //
                    // int sum = client.add(1, 1);
                    // Console.WriteLine("1+1={0}", sum);
                    //
                    // Work work = new Work();
                    //
                    // work.Op = Operation.DIVIDE;
                    // work.Num1 = 1;
                    // work.Num2 = 0;
                    // try
                    // {
                    //     int quotient = client.calculate(1, work);
                    //     Console.WriteLine("Whoa we can divide by 0");
                    // }
                    // catch (InvalidOperation io)
                    // {
                    //     Console.WriteLine("Invalid operation: " + io.Why);
                    // }
                    //
                    // work.Op = Operation.SUBTRACT;
                    // work.Num1 = 15;
                    // work.Num2 = 10;
                    // try
                    // {
                    //     int diff = client.calculate(1, work);
                    //     Console.WriteLine("15-10={0}", diff);
                    // }
                    // catch (InvalidOperation io)
                    // {
                    //     Console.WriteLine("Invalid operation: " + io.Why);
                    // }
                    //
                    // SharedStruct log = client.getStruct(1);
                    // Console.WriteLine("Check log: {0}", log.Value);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Data);
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
        }