Mercury Messaging
Documentation for the Mercury Messaging Framework
MercuryMessaging.MmRelayNode Class Reference

Base routing node of Mercury XM. Contains a list of MmResponders and sends MmMessages to responders in list, following the specifications of control blocks to MmInvoke method. More...

Inheritance diagram for MercuryMessaging.MmRelayNode:
MercuryMessaging.MmResponder MercuryMessaging.IMmNode MercuryMessaging.IMmResponder MercuryMessaging.AppState.MmRelayAppStateNode MercuryMessaging.MmQuickNode MercuryMessaging.MmRelaySwitchNode

Public Member Functions

 MmRelayNode ()
 Creates an empty MmResponder list on construction. More...
 
override void Awake ()
 Grab attached MmNetworkResponder, if present. Detect and refresh parents. Instantiate any cloneable MmResponders. More...
 
override void Start ()
 Calls MmOnStartComplete through MmResponder Start. More...
 
virtual MmRoutingTableItem MmAddToRoutingTable (MmResponder mmResponder, MmLevelFilter level)
 Add an MmResponder to the MmRoutingTable, with level designation. More...
 
virtual MmRoutingTableItem MmAddToRoutingTable (MmResponder mmResponder, string newName)
 Add an MmResponder to the MmRoutingTable, with level designation. More...
 
void MmRefreshResponders ()
 Grab all MmResponders attached to the same GameObject. Does not grab any other MmRelayNodes attached to the same GameObject. More...
 
void RefreshParents ()
 Iterates through RoutingTable list and assigns this MmRelayNode as a parent to child MmResponders. More...
 
virtual void MmAddNodeToList (GameObject go)
 Given a GameObject, extract an MmRelayNode if present and add it to this MmRelayNode's Responder list. More...
 
virtual void AddParent (MmRelayNode parent)
 Given an MmRelayNode, add it as parent to this instance's MmRoutingTable. More...
 
override void MmInvoke (MmMessageType msgType, MmMessage message)
 Invoke an MmMethod. More...
 
virtual void MmInvoke (MmMethod mmMethod, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with no parameter. More...
 
virtual void MmInvoke (MmMethod mmMethod, bool param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: bool. More...
 
virtual void MmInvoke (MmMethod mmMethod, int param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: int. More...
 
virtual void MmInvoke (MmMethod mmMethod, float param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: float. More...
 
virtual void MmInvoke (MmMethod mmMethod, Vector3 param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: Vector3.
More...
 
virtual void MmInvoke (MmMethod mmMethod, Vector4 param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: Vector4.
More...
 
virtual void MmInvoke (MmMethod mmMethod, string param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: string. More...
 
virtual void MmInvoke (MmMethod mmMethod, byte[] param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: byte array.
More...
 
virtual void MmInvoke (MmMethod mmMethod, MmTransform param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: MmTransform. More...
 
virtual void MmInvoke (MmMethod mmMethod, List< MmTransform > param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: List<MmTransform>. More...
 
virtual void MmInvoke (MmMethod mmMethod, IMmSerializable param, MmMetadataBlock metadataBlock=null)
 Invoke an MmMethod with parameter: IMmSerializable. More...
 
override MmRelayNode GetRelayNode ()
 Implementation of IMmResponder's GetRelayNode, which returns this. More...
 
- Public Member Functions inherited from MercuryMessaging.MmResponder
virtual void Update ()
 Base Update of MmResponder Derived classes should always override. More...
 
virtual void MmOnAwakeComplete ()
 Post Awake callback used between objects implementing this interface. This allows for initialization steps that must occur before one instance's Awake and its Start. More...
 
virtual void MmOnStartComplete ()
 Post Start callback used between objects implementing this interface This allows for initialization steps that must occur before one instance's Start and its first Update. More...
 
virtual void MmRegisterAwakeCompleteCallback (IMmCallback callback)
 It is possible that certain handles are not going to be in-place when registration of the OnAwakeComplete callback is invoked. The is especially true in scenarios where MmRelayNodes are networked. This allows for a deferred registration, eliminating most instances where the Awake callback invocations fail. More...
 
virtual void MmRegisterStartCompleteCallback (IMmCallback callback)
 It is possible that certain handles are not going to be in-place when registration of the OnStartComplete callback is invoked. The is especially true in scenarios where MmRelayNodes are networked. This allows for a deferred registration, eliminating most instances where the Start callback invocations fail. More...
 

Static Public Member Functions

static MmRelayNode GetRelayNode (IMmResponder iMmResponder)
 Given an MmResponder, extract an MmRelayNode from it's GameObject, if one is present. More...
 
static MmRelayNode GetRelayNode (GameObject go)
 Given a GameObject, extract the first MmRelayNode, if any are present. More...
 

Public Attributes

bool FlipNetworkFlagOnSend = false
 Does the node convert the message to a local message from networked on post send in order to guarantee that it does not send it over the network deeper in the hierarchy. More...
 
bool AllowNetworkPropagationLocally = false
 Allows Node to pass a Network-only message into the hierarchy More...
 
bool ReparentClonedRespondersToSelf = true
 Indicates whether cloned MmResponders should be added as children to the MmRelayNode's GameObject. More...
 
bool Initialized
 Indicates whether the MmRelayNode is ready for use This gets set either in Awake or on the first MmInvoke. More...
 
bool AutoGrabAttachedResponders = true
 There may be an issue where a message is received before self responders have been added to the list. In order to resolve that issue, we allow the node to automatically grab all responders. The consequence here is that you cannot have responders on a node that do not automatically get added to the list. More...
 
MmRoutingTable RoutingTable
 List of associated Mercury Responders. Each Mercury Routing Table Item contains: MmResponder, Name, Level (Self, Child, Parent), Cloneable (Indicates whether the Responder should be cloned when MmRelayNode is awoken), MmTag (Multi-tag filter supported by Mercury XM). More...
 

Protected Member Functions

void InitializeNode ()
 
virtual MmLevelFilter LevelFilterAdjust (ref MmMessage message, MmLevelFilter direction)
 If the level filter is designated 'Child', then it is recorded locally, but converted to a 'Child+Self' for use by the RoutingTable (which need to pass the message on to all children, but still need to be able to execute the message on their own responders, otherwise, it just goes to the terminal points of the graph without ever executing). More...
 
virtual MmActiveFilter ActiveFilterAdjust (ref MmMessage message)
 Allows modification of active filter in message as it gets passed between MmRelayNodes. More...
 
virtual MmSelectedFilter SelectedFilterAdjust (ref MmMessage message)
 Allows modification of selected filter in message as it gets passed between MmRelayNodes. More...
 
virtual MmNetworkFilter NetworkFilterAdjust (ref MmMessage message)
 Allows modification of network filter in message as it gets passed between MmRelayNodes. More...
 
virtual bool ResponderCheck (MmLevelFilter levelFilter, MmActiveFilter activeFilter, MmSelectedFilter selectedFilter, MmNetworkFilter networkFilter, MmRoutingTableItem mmRoutingTableItem, MmMessage message)
 This method determines if a particular MmResponder should receive a message via MmInvoke. This performs 4 checks: Tag Check, Level Check, Active Check, & Selected Check. More...
 
virtual bool TagCheck (MmRoutingTableItem mmRoutingTableItem, MmMessage message)
 Determine if MmResponder passes MmRelayNode tag filter check using value embedded in MmMessage. More...
 
virtual bool LevelCheck (MmLevelFilter levelFilter, IMmResponder responder, MmLevelFilter responderLevel)
 Determine if MmResponder passes MmRelayNode level filter check using value embedded in MmMessage. More...
 
virtual bool ActiveCheck (MmActiveFilter activeFilter, IMmResponder responder)
 Determine if MmResponder passes MmRelayNode active filter check using value embedded in MmMessage. More...
 
virtual bool SelectedCheck (MmSelectedFilter selectedFilter, IMmResponder responder)
 Determine if MmResponder passes MmRelayNode selected filter check using value embedded in MmMessage. More...
 
virtual bool NetworkCheck (MmRoutingTableItem mmRoutingTableItem, MmMessage message)
 Checks if a responder should recieve a message based on the network flag in a control block. Network messages can go to other nodes, but not to self responders. More...
 

Protected Attributes

Queue< MmRoutingTableItemMmRespondersToAdd
 Queue of MmResponders to add once list is no longer in use by an MmInvoke More...
 
Queue< KeyValuePair< MmMessageType, MmMessage > > SerialExecutionQueue
 Queue of Memessages to route if serialExecution is enabled and messages are received while another message is being executed. More...
 

Properties

IMmNetworkResponder MmNetworkResponder [get]
 Associated MmNetworkResponder. If an MmNetworkResponder is attached o the same GameObject, it will automatically attach to this MmRelayNode. This turns all MmMethod invocations into networked MmMethod invocations, with no additional effort. More...
 
string Name [get]
 MmRelayNode name: returns GameObject name. More...
 
- Properties inherited from MercuryMessaging.MmResponder
GameObject MmGameObject [get]
 Handle to an instance's GameObject. More...
 
MmTag Tag [get, set]
 MmTags allow you to specify filters for execution in Mercury XM graphs. More...
 
bool TagCheckEnabled [get, set]
 Determines whether tag checking is enabled for this IMmResponder More...
 
- Properties inherited from MercuryMessaging.IMmResponder
MmTag Tag [get, set]
 MmTags allow you to specify filters for execution in MercuryMessaging Hierarchies. MmTag More...
 
GameObject MmGameObject [get]
 Handle to an instance's GameObject. More...
 
bool TagCheckEnabled [get, set]
 Determines whether tag checking is enabled for this IMmResponder More...
 

Detailed Description

Base routing node of Mercury XM. Contains a list of MmResponders and sends MmMessages to responders in list, following the specifications of control blocks to MmInvoke method.

Constructor & Destructor Documentation

◆ MmRelayNode()

MercuryMessaging.MmRelayNode.MmRelayNode ( )

Creates an empty MmResponder list on construction.

Member Function Documentation

◆ ActiveCheck()

virtual bool MercuryMessaging.MmRelayNode.ActiveCheck ( MmActiveFilter  activeFilter,
IMmResponder  responder 
)
protectedvirtual

Determine if MmResponder passes MmRelayNode active filter check using value embedded in MmMessage.

Parameters
activeFilterActive filter value extracted from MmMessage.
responderObserved MmResponder
Returns
Returns whether observed MmResponder has passed active filter check.

◆ ActiveFilterAdjust()

virtual MmActiveFilter MercuryMessaging.MmRelayNode.ActiveFilterAdjust ( ref MmMessage  message)
protectedvirtual

Allows modification of active filter in message as it gets passed between MmRelayNodes.

Parameters
messageMmMessage to be adjusted.
Returns
Base implementation returns messages's active filter.

◆ AddParent()

virtual void MercuryMessaging.MmRelayNode.AddParent ( MmRelayNode  parent)
virtual

Given an MmRelayNode, add it as parent to this instance's MmRoutingTable.

Parameters
parentMmRelayNode to add as a parent.

◆ Awake()

override void MercuryMessaging.MmRelayNode.Awake ( )
virtual

Grab attached MmNetworkResponder, if present. Detect and refresh parents. Instantiate any cloneable MmResponders.

Reimplemented from MercuryMessaging.MmResponder.

Reimplemented in MercuryMessaging.MmRelaySwitchNode.

◆ GetRelayNode() [1/3]

override MmRelayNode MercuryMessaging.MmRelayNode.GetRelayNode ( )
virtual

Implementation of IMmResponder's GetRelayNode, which returns this.

Returns
Returns this MmRelayNode.

Implements MercuryMessaging.MmResponder.

◆ GetRelayNode() [2/3]

static MmRelayNode MercuryMessaging.MmRelayNode.GetRelayNode ( IMmResponder  iMmResponder)
static

Given an MmResponder, extract an MmRelayNode from it's GameObject, if one is present.

Parameters
iMmResponderObserved MmResponder
Returns
an MmRelayNode if one is present on the same GameObject.

◆ GetRelayNode() [3/3]

static MmRelayNode MercuryMessaging.MmRelayNode.GetRelayNode ( GameObject  go)
static

Given a GameObject, extract the first MmRelayNode, if any are present.

Parameters
goObserved GameObject.
Returns
First MmRelayNode on object, if any present.

◆ LevelCheck()

virtual bool MercuryMessaging.MmRelayNode.LevelCheck ( MmLevelFilter  levelFilter,
IMmResponder  responder,
MmLevelFilter  responderLevel 
)
protectedvirtual

Determine if MmResponder passes MmRelayNode level filter check using value embedded in MmMessage.

Parameters
levelFilterLevel filter value extracted from MmMessage.
responderObserved MmResponder.
responderLevelObserved MmResponder Level.
Returns
Returns whether observed MmResponder has passed level filter check.

◆ LevelFilterAdjust()

virtual MmLevelFilter MercuryMessaging.MmRelayNode.LevelFilterAdjust ( ref MmMessage  message,
MmLevelFilter  direction 
)
protectedvirtual

If the level filter is designated 'Child', then it is recorded locally, but converted to a 'Child+Self' for use by the RoutingTable (which need to pass the message on to all children, but still need to be able to execute the message on their own responders, otherwise, it just goes to the terminal points of the graph without ever executing).

Parameters
messageMmMessage to be adjusted.
directionIntended direction of message
Returns
Base implementation returns messages's level filter.

◆ MmAddNodeToList()

virtual void MercuryMessaging.MmRelayNode.MmAddNodeToList ( GameObject  go)
virtual

Given a GameObject, extract an MmRelayNode if present and add it to this MmRelayNode's Responder list.

Parameters
goGameObject that should have an MmRelayNode attached.

◆ MmAddToRoutingTable() [1/2]

virtual MmRoutingTableItem MercuryMessaging.MmRelayNode.MmAddToRoutingTable ( MmResponder  mmResponder,
MmLevelFilter  level 
)
virtual

Add an MmResponder to the MmRoutingTable, with level designation.

Parameters
mmResponderMmResponder to be added.
levelLevel designation of responder.
Returns
Reference to new MmRoutingTable item.

◆ MmAddToRoutingTable() [2/2]

virtual MmRoutingTableItem MercuryMessaging.MmRelayNode.MmAddToRoutingTable ( MmResponder  mmResponder,
string  newName 
)
virtual

Add an MmResponder to the MmRoutingTable, with level designation.

Parameters
mmResponderMmResponder to be added.
newNameName of MmResponder as it will appear in list.
Returns
Reference to new MmRoutingTable item.

◆ MmInvoke() [1/12]

override void MercuryMessaging.MmRelayNode.MmInvoke ( MmMessageType  msgType,
MmMessage  message 
)

Invoke an MmMethod.

Parameters
msgTypeType of message. This specifies the type of the payload. This is important in networked scenarios, when proper deseriaization into the correct type requires knowing what was used to serialize the object originally.
messageThe message to send. This class builds on UNET's MessageBase so it is Auto [de]serialized by UNET.

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [2/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with no parameter.

Parameters
mmMethodMmMethod Identifier - MmMethod
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [3/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
bool  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: bool.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: bool.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [4/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
int  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: int.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: int.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [5/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
float  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: float.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: float.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [6/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
Vector3  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: Vector3.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: Vector3.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [7/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
Vector4  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: Vector4.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: Vector4.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [8/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
string  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: string.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: string.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [9/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
byte []  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: byte array.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: byte array.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [10/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
MmTransform  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: MmTransform.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: MmTransform. MmTransform
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [11/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
List< MmTransform param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: List<MmTransform>.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: List<MmTransform>.
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmInvoke() [12/12]

virtual void MercuryMessaging.MmRelayNode.MmInvoke ( MmMethod  mmMethod,
IMmSerializable  param,
MmMetadataBlock  metadataBlock = null 
)
virtual

Invoke an MmMethod with parameter: IMmSerializable.

Parameters
mmMethodMmMethod Identifier - MmMethod
paramMmMethod parameter: IMmSerializable. IMmSerializable
metadataBlockObject defining the routing of Mmessages through MercuryMessaging Hierarchies. MmMetadataBlock

Implements MercuryMessaging.IMmNode.

◆ MmRefreshResponders()

void MercuryMessaging.MmRelayNode.MmRefreshResponders ( )

Grab all MmResponders attached to the same GameObject. Does not grab any other MmRelayNodes attached to the same GameObject.

◆ NetworkCheck()

virtual bool MercuryMessaging.MmRelayNode.NetworkCheck ( MmRoutingTableItem  mmRoutingTableItem,
MmMessage  message 
)
protectedvirtual

Checks if a responder should recieve a message based on the network flag in a control block. Network messages can go to other nodes, but not to self responders.

Parameters
mmRoutingTableItemObserved MmResponder
messageInput message.
Returns

◆ NetworkFilterAdjust()

virtual MmNetworkFilter MercuryMessaging.MmRelayNode.NetworkFilterAdjust ( ref MmMessage  message)
protectedvirtual

Allows modification of network filter in message as it gets passed between MmRelayNodes.

Parameters
messageMmMessage to be adjusted.
Returns
Base implementation returns messages's network filter.

◆ RefreshParents()

void MercuryMessaging.MmRelayNode.RefreshParents ( )

Iterates through RoutingTable list and assigns this MmRelayNode as a parent to child MmResponders.

◆ ResponderCheck()

virtual bool MercuryMessaging.MmRelayNode.ResponderCheck ( MmLevelFilter  levelFilter,
MmActiveFilter  activeFilter,
MmSelectedFilter  selectedFilter,
MmNetworkFilter  networkFilter,
MmRoutingTableItem  mmRoutingTableItem,
MmMessage  message 
)
protectedvirtual

This method determines if a particular MmResponder should receive a message via MmInvoke. This performs 4 checks: Tag Check, Level Check, Active Check, & Selected Check.

Parameters
levelFilterExtracted message level filter - before adjust.
activeFilterExtracted message active filter - before adjust.
selectedFilterExtracted message selected filter - before adjust.
networkFilterExtracted message network filter - before adjust.
mmRoutingTableItemRoutingTableItem of currently observed MmResponder
messageMmMessage to be checked.
Returns
Returns whether responder has passed all checks.

◆ SelectedCheck()

virtual bool MercuryMessaging.MmRelayNode.SelectedCheck ( MmSelectedFilter  selectedFilter,
IMmResponder  responder 
)
protectedvirtual

Determine if MmResponder passes MmRelayNode selected filter check using value embedded in MmMessage.

Parameters
selectedFilterSelected filter value extracted from MmMessage.
responderObserved MmResponder
Returns
Returns whether observed MmResponder has passed selected filter check. In base MmRelayNode, this always returns true.

Reimplemented in MercuryMessaging.MmRelaySwitchNode.

◆ SelectedFilterAdjust()

virtual MmSelectedFilter MercuryMessaging.MmRelayNode.SelectedFilterAdjust ( ref MmMessage  message)
protectedvirtual

Allows modification of selected filter in message as it gets passed between MmRelayNodes.

Parameters
messageMmMessage to be adjusted.
Returns
Base implementation returns messages's selected filter.

◆ Start()

override void MercuryMessaging.MmRelayNode.Start ( )
virtual

Calls MmOnStartComplete through MmResponder Start.

Reimplemented from MercuryMessaging.MmResponder.

Reimplemented in MercuryMessaging.MmRelaySwitchNode.

◆ TagCheck()

virtual bool MercuryMessaging.MmRelayNode.TagCheck ( MmRoutingTableItem  mmRoutingTableItem,
MmMessage  message 
)
protectedvirtual

Determine if MmResponder passes MmRelayNode tag filter check using value embedded in MmMessage.

Parameters
mmRoutingTableItemRoutingTableItem of currently observed MmResponder
messageMmMessage to be checked.
Returns
Returns whether observed MmResponder has passed tag check.

Member Data Documentation

◆ AllowNetworkPropagationLocally

bool MercuryMessaging.MmRelayNode.AllowNetworkPropagationLocally = false

Allows Node to pass a Network-only message into the hierarchy

◆ AutoGrabAttachedResponders

bool MercuryMessaging.MmRelayNode.AutoGrabAttachedResponders = true

There may be an issue where a message is received before self responders have been added to the list. In order to resolve that issue, we allow the node to automatically grab all responders. The consequence here is that you cannot have responders on a node that do not automatically get added to the list.

◆ FlipNetworkFlagOnSend

bool MercuryMessaging.MmRelayNode.FlipNetworkFlagOnSend = false

Does the node convert the message to a local message from networked on post send in order to guarantee that it does not send it over the network deeper in the hierarchy.

◆ Initialized

bool MercuryMessaging.MmRelayNode.Initialized

Indicates whether the MmRelayNode is ready for use This gets set either in Awake or on the first MmInvoke.

◆ MmRespondersToAdd

Queue<MmRoutingTableItem> MercuryMessaging.MmRelayNode.MmRespondersToAdd
protected
Initial value:
=
new Queue<MmRoutingTableItem>()

Queue of MmResponders to add once list is no longer in use by an MmInvoke

◆ ReparentClonedRespondersToSelf

bool MercuryMessaging.MmRelayNode.ReparentClonedRespondersToSelf = true

Indicates whether cloned MmResponders should be added as children to the MmRelayNode's GameObject.

◆ RoutingTable

MmRoutingTable MercuryMessaging.MmRelayNode.RoutingTable

List of associated Mercury Responders. Each Mercury Routing Table Item contains: MmResponder, Name, Level (Self, Child, Parent), Cloneable (Indicates whether the Responder should be cloned when MmRelayNode is awoken), MmTag (Multi-tag filter supported by Mercury XM).

◆ SerialExecutionQueue

Queue<KeyValuePair<MmMessageType, MmMessage> > MercuryMessaging.MmRelayNode.SerialExecutionQueue
protected
Initial value:
=
new Queue<KeyValuePair<MmMessageType, MmMessage>>()

Queue of Memessages to route if serialExecution is enabled and messages are received while another message is being executed.

Property Documentation

◆ MmNetworkResponder

IMmNetworkResponder MercuryMessaging.MmRelayNode.MmNetworkResponder
get

Associated MmNetworkResponder. If an MmNetworkResponder is attached o the same GameObject, it will automatically attach to this MmRelayNode. This turns all MmMethod invocations into networked MmMethod invocations, with no additional effort.

◆ Name

string MercuryMessaging.MmRelayNode.Name
get

MmRelayNode name: returns GameObject name.


The documentation for this class was generated from the following file: