Class MultiplexerAccumulator
java.lang.Object
com.scivicslab.actoriac.accumulator.MultiplexerAccumulator
- All Implemented Interfaces:
com.scivicslab.pojoactor.core.accumulator.Accumulator
public class MultiplexerAccumulator
extends Object
implements com.scivicslab.pojoactor.core.accumulator.Accumulator
Multiplexer accumulator that forwards output to multiple downstream accumulators.
This accumulator receives all output from Node/NodeGroup actors and forwards it to configured downstream accumulators (console, file, database). This ensures that all output destinations receive identical content.
Architecture
Node/NodeGroup Actors
│
│ all output (cowsay, stdout, stderr)
▼
MultiplexerAccumulator
│
├─→ ConsoleAccumulator → System.out
├─→ FileAccumulator → text file
└─→ DatabaseAccumulator → H2 database
Usage
MultiplexerAccumulator multiplexer = new MultiplexerAccumulator();
multiplexer.addTarget(new ConsoleAccumulator());
multiplexer.addTarget(new FileAccumulator(logFile));
multiplexer.addTarget(new DatabaseAccumulator(logStore, sessionId));
// All output goes through the multiplexer
multiplexer.add("node-1", "stdout", "command output...");
multiplexer.add("workflow", "cowsay", cowsayOutput);
- Since:
- 2.12.0
- Author:
- devteam@scivicslab.com
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicIntegerprivate final List<com.scivicslab.pojoactor.core.accumulator.Accumulator> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddTarget(com.scivicslab.pojoactor.core.accumulator.Accumulator target) Adds a downstream accumulator target.voidclear()intgetCount()intReturns the number of downstream targets.booleanremoveTarget(com.scivicslab.pojoactor.core.accumulator.Accumulator target) Removes a downstream accumulator target.
-
Field Details
-
targets
-
count
-
-
Constructor Details
-
MultiplexerAccumulator
public MultiplexerAccumulator()Constructs an empty MultiplexerAccumulator. UseaddTarget(Accumulator)to add downstream accumulators.
-
-
Method Details
-
addTarget
Adds a downstream accumulator target.All data added to this multiplexer will be forwarded to this target.
- Parameters:
target- the downstream accumulator to add
-
removeTarget
Removes a downstream accumulator target.- Parameters:
target- the downstream accumulator to remove- Returns:
- true if the target was removed, false if it was not found
-
getTargetCount
Returns the number of downstream targets.- Returns:
- the number of targets
-
add
-
getSummary
- Specified by:
getSummaryin interfacecom.scivicslab.pojoactor.core.accumulator.Accumulator
-
getCount
- Specified by:
getCountin interfacecom.scivicslab.pojoactor.core.accumulator.Accumulator
-
clear
- Specified by:
clearin interfacecom.scivicslab.pojoactor.core.accumulator.Accumulator
-