/// <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; }
/// <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); }
/// <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; }
/// <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); }