public ParseBinaryImage ( byte buffer, int startIndex, int length ) : int | ||
buffer | byte | Buffer containing binary image to parse. |
startIndex | int | 0-based starting index in the |
length | int | Valid number of bytes within |
return | int |
private SignalIndexCache DeserializeSignalIndexCache(byte[] buffer) { CompressionModes compressionModes = (CompressionModes)(m_operationalModes & OperationalModes.CompressionModeMask); bool useCommonSerializationFormat = (m_operationalModes & OperationalModes.UseCommonSerializationFormat) > 0; bool compressSignalIndexCache = (m_operationalModes & OperationalModes.CompressSignalIndexCache) > 0; SignalIndexCache deserializedCache; GZipStream inflater = null; if (compressSignalIndexCache && compressionModes.HasFlag(CompressionModes.GZip)) { try { using (MemoryStream compressedData = new MemoryStream(buffer)) { inflater = new GZipStream(compressedData, CompressionMode.Decompress, true); buffer = inflater.ReadStream(); } } finally { if ((object)inflater != null) inflater.Close(); } } if (useCommonSerializationFormat) { deserializedCache = new SignalIndexCache(); deserializedCache.Encoding = m_encoding; deserializedCache.ParseBinaryImage(buffer, 0, buffer.Length); } else { deserializedCache = Serialization.Deserialize<SignalIndexCache>(buffer, SerializationFormat.Binary); } return deserializedCache; }
private SignalIndexCache DeserializeSignalIndexCache(byte[] buffer) { GatewayCompressionMode gatewayCompressionMode = (GatewayCompressionMode)(m_operationalModes & OperationalModes.CompressionModeMask); bool useCommonSerializationFormat = (m_operationalModes & OperationalModes.UseCommonSerializationFormat) > 0; bool compressSignalIndexCache = (m_operationalModes & OperationalModes.CompressSignalIndexCache) > 0; SignalIndexCache deserializedCache; MemoryStream compressedData = null; GZipStream inflater = null; if (compressSignalIndexCache && gatewayCompressionMode == GatewayCompressionMode.GZip) { try { compressedData = new MemoryStream(buffer); inflater = new GZipStream(compressedData, CompressionMode.Decompress); buffer = inflater.ReadStream(); } finally { if ((object)inflater != null) inflater.Close(); if ((object)compressedData != null) compressedData.Close(); } } if (useCommonSerializationFormat) { deserializedCache = new SignalIndexCache(); deserializedCache.Encoding = m_encoding; deserializedCache.ParseBinaryImage(buffer, 0, buffer.Length); } else { deserializedCache = Serialization.Deserialize<SignalIndexCache>(buffer, GSF.SerializationFormat.Binary); } return deserializedCache; }