Exemple #1
0
        public UserTransaction Create(object key, object value)
        {
            var hash = _hashFromValue
                ? _hashCalculater.CalculateHashFromValue(value)
                : _hashCalculater.CalculateHashFromKey(key);

            var transaction = _distributor.CreateTransaction(hash);

            transaction.OperationName = OperationName.Create;
            transaction.OperationType = OperationType.Async;

            if (!transaction.IsError)
            {
                CompleteTransaction(key, value, transaction);
                PerfCounters.ProxyCounters.Instance.CreateCount.Increment();
            }

            return(transaction.UserTransaction);
        }
Exemple #2
0
        public static InnerData CreateEvent(IHashCalculater calc, int id)
        {
            string hash = calc.CalculateHashFromKey(id);

            var ev = new InnerData(new Transaction(hash, "")
            {
                OperationName = OperationName.Read
            })
            {
                Data = calc.SerializeValue(CreateStoredData(id))
            };

            return(ev);
        }
Exemple #3
0
        private List <MetaData> ReadMetaDataUsingSelect(string script, int countElements, bool isfirstAsk, ref object lastId,
                                                        Func <MetaData, bool> isMine, ref bool isAllDataRead)
        {
            var list          = new List <MetaData>();
            var idDescription = PrepareKeyDescription(countElements, isfirstAsk, lastId);
            SelectSearchResult result;

            int count = 0;

            var select = new SelectDescription(idDescription, script, countElements, new List <FieldDescription>());
            var ret    = SelectRead(select, out result);

            while (!ret.IsError)
            {
                bool exit = false;
                foreach (var searchData in result.Data)
                {
                    var meta = _metaDataCommandCreator.ReadMetaFromSearchData(searchData);
                    meta.Hash = _hashCalculater.CalculateHashFromKey(meta.Id);

                    if (isMine(meta))
                    {
                        list.Add(meta);
                        count++;
                    }

                    lastId = meta.Id;

                    if (count == countElements)
                    {
                        exit = true;
                        break;
                    }
                }

                if (result.IsAllDataRead || exit)
                {
                    break;
                }

                idDescription = PrepareKeyDescription(countElements, false, lastId);
                select        = new SelectDescription(idDescription, script, count, new List <FieldDescription>());
                ret           = SelectRead(select, out result);
            }

            isAllDataRead = result.IsAllDataRead;

            return(list);
        }