Exemple #1
0
        /// <summary>
        /// Deserializes a service range settings block.
        /// </summary>
        /// <param name="serializedData">The serialized data.</param>
        /// <param name="settings">The settings.</param>
        /// <returns>The deserialization result.</returns>
        private static DeserializationResult DeserializeRangeSettings(BinaryData serializedData, Settings settings)
        {
            if (serializedData == null || serializedData.Left == 0)
            {
                return(DeserializationResult.EndOfData);
            }

            Log.DevDebug(typeof(BinarySettings), "DeserializeRangeSettings", applySettings);

            serializedData.ResetLocalCheckSum();

            SettingsType settingsType = serializedData.GetSettingsType();

            if (settingsType != SettingsType.ServiceRanges)
            {
                throw new InvalidOperationException("Not a service range settings block");
            }

            ulong version = serializedData.GetVersion();

            if (version > 0)
            {
                Log.Warning(typeof(BinarySettings), "DeserializeRangeSettings", "Serialized data version too high", version, 0);
                return(DeserializationResult.Error);
            }

            // Settings.
            bool  rangeLimit    = serializedData.GetBool();
            float rangeMaximum  = serializedData.GetFloat();
            float rangeMinimum  = serializedData.GetFloat();
            float rangeModifier = serializedData.GetFloat();

            serializedData.CheckLocalCheckSum();

            Log.Debug(typeof(BinarySettings), "DeserializeRangeSettings", applySettings, rangeLimit, rangeMaximum, rangeMinimum, rangeModifier);

            if (applySettings)
            {
                settings.RangeLimit    = rangeLimit;
                settings.RangeMaximum  = rangeMaximum;
                settings.RangeMinimum  = rangeMinimum;
                settings.RangeModifier = rangeModifier;
            }

            return(DeserializationResult.Success);
        }