Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
PushEvent.cs
1using System;
2using Waher.Content;
3using Waher.Script;
7
9{
14 {
24 : base(new ScriptNode[] { Event, Data }, argumentTypes2Scalar, Start, Length, Expression)
25 {
26 }
27
38 : base(new ScriptNode[] { Page, Event, Data }, new ArgumentType[] { ArgumentType.Normal, ArgumentType.Scalar, ArgumentType.Scalar }, Start, Length, Expression)
39 {
40 }
41
52 public PushEvent(ScriptNode Page, ScriptNode QueryFilter, ScriptNode Event, ScriptNode Data, int Start, int Length, Expression Expression)
53 : base(new ScriptNode[] { Page, QueryFilter, Event, Data }, argumentTypes4Scalar, Start, Length, Expression)
54 {
55 }
56
60 public override string FunctionName => nameof(PushEvent);
61
65 public override string[] DefaultArgumentNames => new string[] { "Page", "QueryFilter", "Event", "Data" };
66
74 {
75 int c = Arguments.Length;
76 int d = c - 2;
77 IElement[] A = new IElement[d];
78
79 Array.Copy(Arguments, 0, A, 0, d);
80 string[] TabIDs = GetTabIDs.GetTabs(A, this);
81
82 if (TabIDs.Length > 0)
83 {
84 object Data = Arguments[c - 1].AssociatedObjectValue;
85
86 if (Data is string s)
87 ClientEvents.PushEvent(TabIDs, Arguments[c - 2].AssociatedObjectValue?.ToString(), s, false);
88 else
89 ClientEvents.PushEvent(TabIDs, Arguments[c - 2].AssociatedObjectValue?.ToString(), JSON.Encode(Data, false), true);
90 }
91
92 return new ObjectVector(TabIDs);
93 }
94 }
95}
Helps with common JSON-related tasks.
Definition: JSON.cs:14
static string Encode(string s)
Encodes a string for inclusion in JSON.
Definition: JSON.cs:507
The ClientEvents class allows applications to push information asynchronously to web clients connecte...
Definition: ClientEvents.cs:51
static Task< int > PushEvent(string[] TabIDs, string Type, object Data)
Puses an event to a set of Tabs, given their Tab IDs.
Gets an array of Tab IDs (as strings) of currently open pages, given certain conditions.
Definition: GetTabIDs.cs:16
static string[] GetTabs(IElement[] Arguments, ScriptNode Node)
Gets TabIDs based in restrictions in input arguments.
Definition: GetTabIDs.cs:80
Pushes an event to all open pages (tabs) showing a specific page, that include the Events....
Definition: PushEvent.cs:14
PushEvent(ScriptNode Event, ScriptNode Data, int Start, int Length, Expression Expression)
Pushes an event to all open pages (tabs) showing a specific page, that include the Events....
Definition: PushEvent.cs:23
PushEvent(ScriptNode Page, ScriptNode QueryFilter, ScriptNode Event, ScriptNode Data, int Start, int Length, Expression Expression)
Pushes an event to all open pages (tabs) showing a specific page, that include the Events....
Definition: PushEvent.cs:52
override IElement Evaluate(IElement[] Arguments, Variables Variables)
Evaluates the function.
Definition: PushEvent.cs:73
override string FunctionName
Name of the function
Definition: PushEvent.cs:60
PushEvent(ScriptNode Page, ScriptNode Event, ScriptNode Data, int Start, int Length, Expression Expression)
Pushes an event to all open pages (tabs) showing a specific page, that include the Events....
Definition: PushEvent.cs:37
override string[] DefaultArgumentNames
Default Argument names
Definition: PushEvent.cs:65
Class managing a script expression.
Definition: Expression.cs:39
Base class for multivariate funcions.
ScriptNode[] Arguments
Function arguments.
static readonly ArgumentType[] argumentTypes2Scalar
Two scalar parameters.
static readonly ArgumentType[] argumentTypes4Scalar
Four scalar parameters.
Base class for all nodes in a parsed script tree.
Definition: ScriptNode.cs:69
int Length
Length of expression covered by node.
Definition: ScriptNode.cs:101
override string ToString()
Definition: ScriptNode.cs:359
Expression Expression
Expression of which the node is a part.
Definition: ScriptNode.cs:177
int Start
Start position in script expression.
Definition: ScriptNode.cs:92
Collection of variables.
Definition: Variables.cs:25
Basic interface for all types of elements.
Definition: IElement.cs:20
ArgumentType
Type of parameter used in a function definition or a lambda definition.
Definition: IFunction.cs:9