public virtual void Deserialize(IPrimitiveReader reader, int version) { //TargetIndexName TargetIndexName = reader.ReadString(); //IndexIdList ushort count = reader.ReadUInt16(); if (count > 0) { IndexIdList = new List <byte[]>(count); ushort len; for (ushort i = 0; i < count; i++) { len = reader.ReadUInt16(); if (len > 0) { IndexIdList.Add(reader.ReadBytes(len)); } } } //ExcludeData ExcludeData = reader.ReadBoolean(); //GetIndexHeader GetIndexHeader = reader.ReadBoolean(); //PrimaryIdList count = reader.ReadUInt16(); if (count > 0) { PrimaryIdList = new List <int>(count); for (ushort i = 0; i < count; i++) { PrimaryIdList.Add(reader.ReadInt32()); } } //Filter byte b = reader.ReadByte(); if (b != 0) { FilterType filterType = (FilterType)b; Filter = FilterFactory.CreateFilter(reader, filterType); } //IndexIdParamsMapping count = reader.ReadUInt16(); if (count > 0) { intersectionQueryParamsMapping = new Dictionary <byte[], IntersectionQueryParams>(count, new ByteArrayEqualityComparer()); byte[] indexId; IntersectionQueryParams intersectionQueryParam; ushort len; for (ushort i = 0; i < count; i++) { len = reader.ReadUInt16(); indexId = null; if (len > 0) { indexId = reader.ReadBytes(len); intersectionQueryParam = new IntersectionQueryParams(); Serializer.Deserialize(reader.BaseStream, intersectionQueryParam); intersectionQueryParamsMapping.Add(indexId, intersectionQueryParam); } } } if (version == 2) { //FullDataIdInfo FullDataIdInfo = new FullDataIdInfo(); Serializer.Deserialize(reader.BaseStream, FullDataIdInfo); } if (version >= 3) { //FullDataIdInfo if (reader.ReadBoolean()) { FullDataIdInfo = new FullDataIdInfo(); Serializer.Deserialize(reader.BaseStream, FullDataIdInfo); } //Count Count = reader.ReadInt32(); //MaxResultItems MaxResultItems = reader.ReadInt32(); //CanApplyMaxResultItemsOnServer IsSingleClusterQuery = reader.ReadBoolean(); //IndexCondition if (reader.ReadBoolean()) { IndexCondition = new IndexCondition(); Serializer.Deserialize(reader.BaseStream, IndexCondition); } } if (version >= 4) { //DomainSpecificProcessingType DomainSpecificProcessingType = (DomainSpecificProcessingType)reader.ReadByte(); } }
public override void Deserialize(IPrimitiveReader reader, int version) { //Offset Offset = reader.ReadInt32(); //Span Span = reader.ReadInt32(); //TargetIndexName TargetIndexName = reader.ReadString(); //TagsFromIndexes ushort count = reader.ReadUInt16(); if (count > 0) { TagsFromIndexes = new List <string>(count); for (ushort i = 0; i < count; i++) { TagsFromIndexes.Add(reader.ReadString()); } } //TagSort if (reader.ReadByte() != 0) { TagSort = new TagSort(); Serializer.Deserialize(reader.BaseStream, TagSort); } //IndexIdList count = reader.ReadUInt16(); if (count > 0) { IndexIdList = new List <byte[]>(count); ushort len; for (ushort i = 0; i < count; i++) { len = reader.ReadUInt16(); if (len > 0) { IndexIdList.Add(reader.ReadBytes(len)); } } } //Read a byte to account for deprecated CriterionList reader.ReadByte(); //MaxItemsPerIndex MaxItems = reader.ReadInt32(); //ExcludeData ExcludeData = reader.ReadBoolean(); //GetIndexHeader GetIndexHeader = reader.ReadBoolean(); //GetPageableItemCount GetAdditionalAvailableItemCount = reader.ReadBoolean(); //PrimaryIdList count = reader.ReadUInt16(); if (count > 0) { PrimaryIdList = new List <int>(count); for (ushort i = 0; i < count; i++) { PrimaryIdList.Add(reader.ReadInt32()); } } //Filter byte b = reader.ReadByte(); if (b != 0) { FilterType filterType = (FilterType)b; Filter = FilterFactory.CreateFilter(reader, filterType); } //IndexIdParamsMapping count = reader.ReadUInt16(); if (count > 0) { IndexIdParamsMapping = new Dictionary <byte[], IndexIdParams>(count, new ByteArrayEqualityComparer()); byte[] indexId; IndexIdParams indexIdParam; ushort len; for (ushort i = 0; i < count; i++) { len = reader.ReadUInt16(); indexId = null; if (len > 0) { indexId = reader.ReadBytes(len); indexIdParam = new IndexIdParams(); Serializer.Deserialize(reader.BaseStream, indexIdParam); IndexIdParamsMapping.Add(indexId, indexIdParam); } } } //FullDataIdInfo if (reader.ReadBoolean()) { FullDataIdInfo = new FullDataIdInfo(); Serializer.Deserialize(reader.BaseStream, FullDataIdInfo); } //ClientSideSubsetProcessingRequired ClientSideSubsetProcessingRequired = reader.ReadBoolean(); if (version >= 2) { //CapCondition if (reader.ReadBoolean()) { CapCondition = new CapCondition(); Serializer.Deserialize(reader.BaseStream, CapCondition); } } if (version >= 3) { //GetIndexHeaderType GetIndexHeaderType = (GetIndexHeaderType)reader.ReadByte(); } if (version >= 4) { //DomainSpecificProcessingType DomainSpecificProcessingType = (DomainSpecificProcessingType)reader.ReadByte(); } if (version >= 5) { //GroupBy if (reader.ReadBoolean()) { GroupBy = new GroupBy(); Serializer.Deserialize(reader.BaseStream, GroupBy); } } }
public void Deserialize(IPrimitiveReader reader, int version) { //IndexId ushort len = reader.ReadUInt16(); if (len > 0) { IndexId = reader.ReadBytes(len); } //FirstPageSize FirstPageSize = reader.ReadInt32(); //LastPageSize LastPageSize = reader.ReadInt32(); //TargetIndexName TargetIndexName = reader.ReadString(); //Read a byte to account for deprecated CriterionList reader.ReadByte(); //ExcludeData ExcludeData = reader.ReadBoolean(); //GetMetadata GetMetadata = reader.ReadBoolean(); if (version >= 2) { //Filter byte b = reader.ReadByte(); if (b != 0) { FilterType filterType = (FilterType)b; Filter = FilterFactory.CreateFilter(reader, filterType); } } if (version == 3) { //FullDataIdInfo FullDataIdInfo = new FullDataIdInfo(); Serializer.Deserialize(reader.BaseStream, FullDataIdInfo); } if (version >= 4) { //FullDataIdInfo if (reader.ReadBoolean()) { FullDataIdInfo = new FullDataIdInfo(); Serializer.Deserialize(reader.BaseStream, FullDataIdInfo); } //TagSort if (reader.ReadBoolean()) { TagSort = new TagSort(); Serializer.Deserialize(reader.BaseStream, TagSort); } } if (version >= 5) { //IndexCondition if (reader.ReadBoolean()) { IndexCondition = new IndexCondition(); Serializer.Deserialize(reader.BaseStream, IndexCondition); } } if (version >= 6) { //DomainSpecificProcessingType DomainSpecificProcessingType = (DomainSpecificProcessingType)reader.ReadByte(); } }