protected internal virtual void HandleEvent(VariableEvent @event) { var sourceScope = @event.SourceScope; if (sourceScope is ExecutionEntity) { AddEventToScopeExecution((ExecutionEntity)sourceScope, @event); } else if (sourceScope is TaskEntity) { TaskEntity task = (TaskEntity)sourceScope; ExecutionEntity execution = task.GetExecution(); if (execution != null) { AddEventToScopeExecution(execution, @event); } } else if (sourceScope.ParentVariableScope is ExecutionEntity) { AddEventToScopeExecution((ExecutionEntity)sourceScope.ParentVariableScope, @event); } else { throw new ProcessEngineException("BPMN execution scope expected"); } }
public void RegisterListenerForVariable(HomeSimCockpitSDK.VariableChangeSignalDelegate listenerMethod, string variableID, HomeSimCockpitSDK.VariableType type) { if (!_variablesListeners.ContainsKey(variableID)) { VariableEvent ve = new VariableEvent(); _variablesListeners.Add(variableID, ve); } _variablesListeners[variableID].Signal += listenerMethod; }
public virtual void LeaveOnSatisfiedCondition(EventSubscriptionEntity eventSubscription, VariableEvent variableEvent) { PvmExecutionImpl execution = eventSubscription.Execution; if (execution != null && !execution.IsEnded && execution.IsScope && ConditionalEvent.TryEvaluate(variableEvent, execution)) { execution.ExecuteEventHandlerActivity(eventSubscription.Activity); } }
public void RegisterListenerForVariable(HomeSimCockpitSDK.VariableChangeSignalDelegate listenerMethod, string variableID, HomeSimCockpitSDK.VariableType type) { if (type != HomeSimCockpitSDK.VariableType.Int) { throw new Exception(string.Format("Nieobsługiwany typ '{0}' zmiennej '{1}'.", type, variableID)); } if (!_variablesListeners.ContainsKey(variableID)) { VariableEvent ve = new VariableEvent(variableID); _variablesListeners.Add(variableID, ve); } _variablesListeners[variableID].Signal += listenerMethod; }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: @Override public void notify(org.camunda.bpm.engine.delegate.DelegateExecution execution) throws Exception public virtual void notify(DelegateExecution execution) { if (!execution.hasVariableLocal(variableName)) { return; } object value = execution.getVariableLocal(variableName); VariableEvent @event = new VariableEvent(); @event.variableName = variableName; @event.variableValue = value; @event.eventName = execution.EventName; @event.activityInstanceId = execution.ActivityInstanceId; variableEvents.Add(@event); }
public virtual void LeaveOnSatisfiedCondition(EventSubscriptionEntity eventSubscription, VariableEvent variableEvent) { PvmExecutionImpl execution = eventSubscription.Execution; if (execution != null && !execution.IsEnded && variableEvent != null && ConditionalEvent.TryEvaluate(variableEvent, execution) && execution.IsActive && execution.IsScope) { if (IsAfterEventBasedGateway) { ActivityImpl activity = eventSubscription.Activity; execution.ExecuteEventHandlerActivity(activity); } else { Leave(execution); } } }
public void Notify(IBaseDelegateExecution execution) { if (!execution.HasVariableLocal(VariableName)) { return; } object value = execution.GetVariableLocal(VariableName); VariableEvent @event = new VariableEvent(); @event.VariableName = VariableName; @event.VariableValue = value; @event.EventName = execution.EventName; @event.ActivityInstanceId = (execution as IDelegateExecution)?.ActivityInstanceId; variableEvents.Add(@event); }
private void ClientThread(object client) { NetworkStream stream = null; TcpClient tcpClient = client as TcpClient; try { stream = tcpClient.GetStream(); while (_working) { byte[] data = new byte[1]; IAsyncResult async = stream.BeginRead(data, 0, 1, null, null); if (stream.EndRead(async) == 0) { break; } bool isVariable = data[0] == 1; data = new byte[4]; async = stream.BeginRead(data, 0, 4, null, null); if (stream.EndRead(async) == 0) { break; } int length = BitConverter.ToInt32(data, 0); if (length > 0) { data = new byte[length]; async = stream.BeginRead(data, 0, length, null, null); if (stream.EndRead(async) == 0) { break; } if (isVariable) { Variable v = Variable.Deserialize(new MemoryStream(data)); VariableEvent ve = null; if (_variablesListeners.TryGetValue(v.ID, out ve)) { ve.FireSignal(v); } } } } } catch (ThreadAbortException) { } catch (Exception ex) { _log.Log(this, "Błąd połączenia z klientem: " + tcpClient.Client.RemoteEndPoint.ToString() + ", błąd: " + ex.Message); } finally { _log.Log(this, "Zamknięto połączenie z klientem: " + tcpClient.Client.RemoteEndPoint.ToString()); if (stream != null) { try { stream.Close(); stream.Dispose(); stream = null; } catch { } } if (tcpClient != null) { try { tcpClient.Close(); tcpClient = null; } catch { } } } }
public virtual bool tryEvaluate(VariableEvent variableEvent, DelegateExecution execution) { return((variableEvent == null || shouldEvaluateForVariableEvent(variableEvent)) && tryEvaluate(execution)); }
public virtual bool shouldEvaluateForVariableEvent(VariableEvent @event) { return((string.ReferenceEquals(variableName, null) || @event.VariableInstance.Name.Equals(variableName)) && ((variableEvents == null || variableEvents.Count == 0) || variableEvents.Contains(@event.EventName))); }
public virtual void DispatchEvent(VariableEvent variableEvent) { // default implementation does nothing }
public void AttachVariableEvent(string variable, VariableEvent variableEvent) { _variableEvents.Add(variable, variableEvent); }
public virtual bool TryEvaluate(VariableEvent variableEvent, IDelegateExecution execution) { return(((variableEvent == null) || ShouldEvaluateForVariableEvent(variableEvent)) && TryEvaluate(execution)); }
protected internal virtual void AddEventToScopeExecution(ExecutionEntity sourceScope, VariableEvent @event) { // ignore events of variables that are not set in an execution ExecutionEntity sourceExecution = sourceScope; ExecutionEntity scopeExecution = (ExecutionEntity)(sourceExecution.IsScope ? sourceExecution : sourceExecution.Parent); scopeExecution.DelayEvent((ExecutionEntity)TargetScope, @event); }
public DelayedVariableEvent(PvmExecutionImpl targetScope, VariableEvent @event) { this.targetScope = targetScope; this.@event = @event; }