Developer FAQ

This is a constant work in progress. If you have a specific question that you think should be in here, please contact one of the Developers

What is the "littlebluefrog labs Commons"?
The littlebluefrog labs Commons Project is a library of utilities that is used extensively by Portico. See The Commons Project for more information.

What is a Message Context?
A Message Context is an instance of the class. Each context contains a request and response message. When a message is passed to a Message Sink, it is passed in a Message Context. This way, any of the handlers in the sink can optionally fill out a response based on the request, and the two can remain associated. See the Commons documentation for more information.

What is a Request Message?
In the Commons, a Request Message is any class that extends. It is important to note that a request message doesn't always have to correspond directly to a "request". For example, a Callback Message is also a request message, as it is technically a "request" to deliver a message from the RTI to a Federate. Basically, anything that kicks off processing is a request message. When a Message Context is passed to a sink, the sink will look at its Request Message, and then decide which of the handlers to pass it to, depending on whether or not any have declared an interest in processing that request.

What is a Callback Message?
A Callback Message is a Message that is sent asynchronously from the RTI to an LRC. Callback messages are any message class that extends, it is turned into an instance of a special message class. This instance is then passed through a number of [Message Handlers]. A Message Handler is just a class that takes in a message and performs some action based on the request. For example, the handler for the "register object instance" request would tell the RTI to register a new object instance.

Message Handlers are part of the littlebluefrog labs Commons Framework. For more information on the commons, see this guide.

What is a Message Sink?
A Message Sink is a kind of super-structure for Message Handlers. Nearly all Message Handlers are only designed to handle a certain set of message types. A Message Sink allows handlers to be registered as interested in handling messages of only a certain type. When the sink is passed a message, it then looks for a handler that has declared it would like to handle that message type, and passes the message to it.

A Message Sink also adds a global pre- and post- process ability. This is where a particular handler can be declared to handle ALL messages, either before, or after the message has been passed to the specific handler that has declared an interest in it.

Message Sinks are part of the littlebluefrog labs Commons Framework. For more information on the commons, see this guide.

What is a Messaging Module?
A Message Module is a group of Message Handlers that are targeted at a particular Message Sink. Each module is made up of many targets. Each target is made up of a list of handlers (and their appropriate configuration information) that should apply to a specific sink. Generally, a target will specify a name for the sink the handlers should be applied to (like "rti-request"). See the Commons Framework for more information.