PipeAndFilter API:EventPipe
EventPipe<T>
Namespace: PipeFilterCore
Represents a pipe/task event with parameters, values and commands.
public class EventPipe<T>
Type Parameters
T
Type of contract.
Inheritance Object → EventPipe<T>
Properties
CorrelationId
The Correlation Id.
public string CorrelationId { get; }
Property Value
CurrentAlias
The current Alias.
public string CurrentAlias { get; }
Property Value
FromAlias
The previous Alias.
public string FromAlias { get; }
Property Value
Logger
The log handler.
public ILogger Logger { get; }
Property Value
ILogger
Constructors
EventPipe(String, ILogger, Action<Action<T>>, ImmutableDictionary<String, String>, String, String, String, String)
Create instance of Event-Pipe (Only internal use or Unit-Test).
public EventPipe(string cid, ILogger logger, Action<Action<T>> changecontract, ImmutableDictionary<String, String> savedvalues, string fromId, string currentId, string fromAlias, string currentAlias)
Parameters
cid String
The correlation Id.
logger ILogger
Handle of log.
changecontract Action<Action<T>>
Handle of changecontract.
savedvalues ImmutableDictionary<String, String>
The values saved.
fromId String
The previous Id.
currentId String
The current Id.
fromAlias String
The previous alias.
currentAlias String
The current alias.
Methods
EndPipeAndFilter()
End PipeAndFilter.
public void EndPipeAndFilter()
RemoValueAtEnd(String)
Remove a value associated with a unique key at the end of this event (If this event is not a task event).
Values removed in the task event will only take effect in the pipe aggregation event
A task event cannot see values saved and/or removed by another task.
In a task event, Never try to overwrite a value already saved by another event, the results may not be as expected as the execution sequence is not guaranteed.
public void RemoValueAtEnd(string id)
Parameters
id String
The unique key Id.
SaveValueAtEnd<T1>(String, T1)
Save/replace a value associated with a unique key at the end of this event(If this event is not a task event).
Values saved in the task event will only take effect in the pipe aggregation event
A task event cannot see values saved and/or removed by another task.
In a task event, Never try to overwrite a value already saved by another event, the results may not be as expected as the execution sequence is not guaranteed.
The values will serialize into json.
public void SaveValueAtEnd<T1>(string id, T1 value)
Type Parameters
T1
Type value to save.
Parameters
id String
The unique key Id.
value T1
The value to save.
ThreadSafeAccess(Action<T>)
Thread Safe Access of contract.
The action will only be executed if the contract exists(not null).
public void ThreadSafeAccess(Action<T> action)
Parameters
action Action<T>
The action to access.
The action will only be executed if the contract exists(not null).
TrySavedValue(String, ref String)
Try get value saved associated with a unique key.
The values are serialized in json.
Null result may exist.
public bool TrySavedValue(string id, ref String value)
Parameters
id String
The unique key Id.
value String&
The value saved if any.
Returns
True if value exists, otherwise false with null value