Class MultiplexerAccumulator
java.lang.Object
com.scivicslab.pojoactor.workflow.accumulator.MultiplexerAccumulator
- All Implemented Interfaces:
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
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds a result to this accumulator.voidaddTarget(Accumulator target) Adds a downstream accumulator target.voidclear()Clears all accumulated results.intgetCount()Returns the number of results that have been added.Returns a formatted summary of all accumulated results.intReturns the number of downstream targets.booleanremoveTarget(Accumulator target) Removes a downstream accumulator target.
-
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
public int getTargetCount()Returns the number of downstream targets.- Returns:
- the number of targets
-
add
Description copied from interface:AccumulatorAdds a result to this accumulator.- Specified by:
addin interfaceAccumulator- Parameters:
source- the source identifier (e.g., actor name like "node-localhost")type- the type of result (e.g., "cpu", "memory", "error")data- the result data as a string
-
getSummary
Description copied from interface:AccumulatorReturns a formatted summary of all accumulated results.The format of the summary depends on the implementation. For example,
StreamingAccumulatorreturns a simple count, whileBufferedAccumulatorreturns all results grouped by source.- Specified by:
getSummaryin interfaceAccumulator- Returns:
- the formatted summary string
-
getCount
public int getCount()Description copied from interface:AccumulatorReturns the number of results that have been added.- Specified by:
getCountin interfaceAccumulator- Returns:
- the count of added results
-
clear
public void clear()Description copied from interface:AccumulatorClears all accumulated results.After calling this method, the accumulator should be in its initial state, as if no results had been added.
- Specified by:
clearin interfaceAccumulator
-