/// <summary> /// Creates and returns a <see cref="PluginConfigurationData" /> instance containing the /// configuration data from this control. /// </summary> /// <returns>The configuration data.</returns> public PluginConfigurationData GetConfiguration() { SyncPointActivityData activityData = new SyncPointActivityData { EventName = eventName_TextBox.Text, Action = signalEvent_RadioButton.Checked ? SyncPointAction.Signal : SyncPointAction.Wait }; return(new PluginConfigurationData(activityData, "1.0")); }
/// <summary> /// Initializes this configuration control with the specified <see cref="PluginConfigurationData" />. /// </summary> /// <param name="configuration">The configuration data.</param> /// <param name="environment">Information about the plugin environment.</param> public void Initialize(PluginConfigurationData configuration, PluginEnvironment environment) { SyncPointActivityData data = configuration.GetMetadata <SyncPointActivityData>(); eventName_TextBox.Text = data.EventName; if (data.Action == SyncPointAction.Signal) { signalEvent_RadioButton.Checked = true; } else { waitForEvent_RadioButton.Checked = true; } }
public PluginExecutionResult Execute(PluginExecutionData executionData) { SyncPointActivityData activityData = executionData.GetMetadata <SyncPointActivityData>(); string eventName = activityData.EventName; switch (activityData.Action) { case SyncPointAction.Signal: SystemTrace.LogDebug($"Signaling synchronization event: {eventName}"); SessionRuntime.AsInternal().SignalSynchronizationEvent(eventName); break; case SyncPointAction.Wait: SystemTrace.LogDebug($"Waiting for synchronization event: {eventName}"); SessionRuntime.AsInternal().WaitForSynchronizationEvent(eventName); break; default: return(new PluginExecutionResult(PluginResult.Error, $"Unknown action '{activityData.Action}'.")); } return(new PluginExecutionResult(PluginResult.Passed)); }