Components send packets to each other through input and output ports. Packet is always in two "places" either inside one and only one component or traveling between components. When packet is no longer used is has to be explicitly dropped ( {@link Packet#drop()}).
Packets create thread safety layer between simultaneously running components. Because packets can not be accessed simultaneously by multiple components data traveling in packet is not prone to concurrency issues. Components should take care when duplicating packet contents (or metadata) to multiple packets. Duplicated data should either be immutable, thread safe or not accessed by multiple components.
@see Component @see InputPort @see OutputPort @see InputPorts @see OutputPorts @param < T> The content type of carried content
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|