Update Messenger to allow modules to register to multiple message types #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request attempt to patch the current messenger implementation to allow modules to register to multiple message types at the same time.
The meaning of the messenger class changed from a message broker to a kind of a mailbox where it just keeps the messages until the receiver asks for them.
The stored messages now in the messenger are not only identified by the module unique name but also by the message type_index; this way a module can receive multiple types.
This, however, will break the check if the module has received the required messages or not and required to refactor this check and move it directly to the module itself.
A new method for the module interface
isSatisfied
will check if the module received the required messages or not.Note that the message flags are now useless because we can't tell from the messenger or the delegates if the module is satisfied or not.