Aerospike.Helper.Model.Set.MergeSetInfo C# (CSharp) Method

MergeSetInfo() public method

public MergeSetInfo ( String info ) : void
info String
return void
        public void MergeSetInfo(String info)
        {
            //ns_name=test:set_name=demo:n_objects=1:set-stop-write-count=0:set-evict-hwm-count=0:set-enable-xdr=use-default:set-delete=false
            if (info.Length > 0){
                String[] parts = info.Split(':');
                if (values == null){
                    values = new Dictionary<String, NameValuePair>();
                }

                foreach (String part in parts){
                    String[] kv = part.Split('=');
                    String key = kv[0];
                    String value = kv[1];
                    NameValuePair storedValue = null;
                    if (values.TryGetValue(key, out storedValue)){
                        long newValue = 0;
                        long oldValue = 0;
                        if (Int64.TryParse(value, out newValue) &&
                            Int64.TryParse(storedValue.value.ToString(), out oldValue)) {
                            storedValue.value = (oldValue + newValue).ToString();
                            storedValue.value = value;
                        }
                    } else {
                        storedValue = new NameValuePair(this, key, value);
                        values[key] = storedValue;
                    }
                }
                this.name = null;
                NameValuePair nameVal;
                if (values.TryGetValue("set_name", out nameVal)){
                    this.name = nameVal.Value.ToString();
                } else {
                    this.name = "";
                }
            }
        }

Usage Example

Example #1
0
        public void MergeSet(String setData)
        {
            if (setData == null || setData.Length == 0)
            {
                return;
            }
            if (sets == null)
            {
                sets = new Dictionary <String, Set> ();
            }
            Set newSet      = new Set(this, setData);
            Set existingSet = null;

            if (!sets.TryGetValue(newSet.Name, out existingSet))
            {
                sets.Add(newSet.Name, newSet);
            }
            else
            {
                existingSet.MergeSetInfo(setData);
            }
        }