Exemple #1
0
 /// <summary>
 /// Sets the specified configuration for the values from the sepcified settings.
 /// </summary>
 /// <param name="settings">The settings.</param>
 internal void SetSettings(HiddenServiceSettings settings)
 {
     this.Enabled      = settings.DispatchVehicles;
     this.DelaySeconds = settings.DelaySeconds;
 }
Exemple #2
0
        /// <summary>
        /// Serializes the hidden service settings.
        /// </summary>
        /// <param name="serializedData">The serialized data.</param>
        /// <param name="settings">The settings.</param>
        /// <returns>
        /// The serialzed data.
        /// </returns>
        private static BinaryData SerializeHiddenServiceSettings(BinaryData serializedData, HiddenServiceSettings settings)
        {
            serializedData.ResetLocalCheckSum();

            // Settings types and version.
            serializedData.Add(SettingsType.HiddenService);
            serializedData.AddVersion(0);
            serializedData.Add(settings.ServiceType);

            // Settings.
            serializedData.Add(settings.DispatchVehicles);
            serializedData.Add(settings.DelaySeconds);

            // Checksum
            serializedData.AddLocalCheckSum();

            return(serializedData);
        }
Exemple #3
0
 /// <summary>
 /// Gets the settings from the specified configuration.
 /// </summary>
 /// <param name="settings">The settings.</param>
 internal void GetSettings(HiddenServiceSettings settings)
 {
     settings.DispatchVehicles = this.Enabled;
     settings.DelaySeconds     = this.DelaySeconds;
 }
Exemple #4
0
        /// <summary>
        /// Deserializes a hidden service settings block.
        /// </summary>
        /// <param name="serializedData">The serialized data.</param>
        /// <param name="settings">The settings.</param>
        /// <returns>The deserialization result.</returns>
        private static DeserializationResult DeserializeHiddenServiceSettings(BinaryData serializedData, Settings settings)
        {
            if (serializedData == null || serializedData.Left == 0)
            {
                return(DeserializationResult.EndOfData);
            }

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

            serializedData.ResetLocalCheckSum();

            SettingsType settingsType = serializedData.GetSettingsType();

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

            ulong version = serializedData.GetVersion();

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

            HiddenServiceSettings serviceSettings;
            HiddenServiceSettings serializedSettings;
            ServiceType           service = serializedData.GetServiceType();

            switch (service)
            {
            case ServiceType.WreckingCrews:
                serviceSettings = settings.WreckingCrews;
                break;

            case ServiceType.RecoveryCrews:
                serviceSettings = settings.RecoveryCrews;
                break;

            default:
                Log.Warning(typeof(BinarySettings), "Not a hidden service", service);
                serviceSettings = null;
                break;
            }

            serializedSettings = new HiddenServiceSettings(serviceSettings);

            // Settings.
            serializedSettings.DispatchVehicles = serializedData.GetBool();
            serializedSettings.DelaySeconds     = serializedData.GetDouble();

            serializedData.CheckLocalCheckSum();

            if (serviceSettings != null)
            {
                Log.Debug(typeof(BinarySettings), "DeserializeHiddenServiceSettings", applySettings, service, serializedSettings.DispatchVehicles, serializedSettings.DelaySeconds);

                if (applySettings)
                {
                    serviceSettings.CopyFrom(serializedSettings);
                }
            }

            return(DeserializationResult.Success);
        }