internal RiakObject(string bucketType, string bucket, string key, RpbContent content, byte[] vectorClock) { BucketType = bucketType; Bucket = bucket; Key = key; this.vectorClock = vectorClock; if (content != null) { Value = content.value; vtag = content.vtag.FromRiakString(); ContentEncoding = content.content_encoding.FromRiakString(); ContentType = content.content_type.FromRiakString(); foreach (var userMeta in content.usermeta) { userMetaData.Add(userMeta.key.FromRiakString(), userMeta.value.FromRiakString()); } links.AddRange(content.links.Select(l => new RiakLink(l))); // TODO - FUTURE: look at how other clients use this data LastModified = content.last_mod; LastModifiedUsec = content.last_mod_usecs; foreach (var index in content.indexes) { var name = index.key.FromRiakString(); if (name.EndsWith(RiakConstants.IndexSuffix.Integer)) { IntIndex(name.Remove(name.Length - RiakConstants.IndexSuffix.Integer.Length)) .Add(index.value.FromRiakString()); } else { BinIndex(name.Remove(name.Length - RiakConstants.IndexSuffix.Binary.Length)) .Add(index.value.FromRiakString()); } } } hashCode = CalculateHashCode(); }
internal RiakObject(string bucket, string key, RpbContent content, byte[] vectorClock) { Bucket = bucket; Key = key; VectorClock = vectorClock; Value = content.Value; VTag = content.VTag.FromRiakString(); ContentEncoding = content.ContentEncoding.FromRiakString(); ContentType = content.ContentType.FromRiakString(); UserMetaData = content.UserMeta.ToDictionary(p => p.Key.FromRiakString(), p => p.Value.FromRiakString()); Indexes = content.Indexes.ToDictionary(p => p.Key.FromRiakString(), p => p.Value.FromRiakString()); Links = content.Links.Select(l => new RiakLink(l)).ToList(); Siblings = new List <RiakObject>(); LastModified = content.LastMod; LastModifiedUsec = content.LastModUSecs; _hashCode = CalculateHashCode(); }
internal RiakObject(string bucket, string key, RpbContent content, byte[] vectorClock) { Bucket = bucket; Key = key; VectorClock = vectorClock; Value = content.value; VTag = content.vtag.FromRiakString(); ContentEncoding = content.content_encoding.FromRiakString(); ContentType = content.content_type.FromRiakString(); UserMetaData = content.usermeta.ToDictionary(p => p.key.FromRiakString(), p => p.value.FromRiakString()); Links = content.links.Select(l => new RiakLink(l)).ToList(); Siblings = new List <RiakObject>(); LastModified = content.last_mod; LastModifiedUsec = content.last_mod_usecs; _intIndexes = new Dictionary <string, IntIndex>(); _binIndexes = new Dictionary <string, BinIndex>(); foreach (var index in content.indexes) { var name = index.key.FromRiakString(); if (name.EndsWith(RiakConstants.IndexSuffix.Integer)) { IntIndex(name.Remove(name.Length - RiakConstants.IndexSuffix.Integer.Length)) .Add(index.value.FromRiakString()); } else { BinIndex(name.Remove(name.Length - RiakConstants.IndexSuffix.Binary.Length)) .Add(index.value.FromRiakString()); } } _hashCode = CalculateHashCode(); }