Class MultiplexerAccumulatorIIAR
java.lang.Object
com.scivicslab.pojoactor.core.ActorRef<MultiplexerAccumulator>
com.scivicslab.pojoactor.workflow.IIActorRef<MultiplexerAccumulator>
com.scivicslab.pojoactor.workflow.accumulator.MultiplexerAccumulatorIIAR
- All Implemented Interfaces:
CallableByActionName,AutoCloseable
Actor reference for MultiplexerAccumulator.
This class wraps a MultiplexerAccumulator as an actor, allowing
other actors to send messages to it via callByActionName. The actor
forwards all output to its registered target accumulators (Console, File, Database).
This class replaces the former LoggingAccumulatorIIAR with a more
flexible architecture that supports multiple output destinations.
Supported Actions
add- Adds output to all registered accumulatorsgetSummary- Returns formatted summarygetCount- Returns the number of added entriesclear- Clears all accumulated entries
Message Format for "add" Action
{
"source": "node-localhost",
"type": "stdout",
"data": "command output here"
}
Usage
// Create and register the actor
MultiplexerAccumulator multiplexer = new MultiplexerAccumulator();
multiplexer.addTarget(new ConsoleAccumulator());
multiplexer.addTarget(new FileAccumulator(logFilePath));
multiplexer.addTarget(new DatabaseAccumulator(logStoreActor, dbExecutor, sessionId));
MultiplexerAccumulatorIIAR actor = new MultiplexerAccumulatorIIAR(
"outputMultiplexer", multiplexer, system);
system.addIIActor(actor);
// Other actors can send messages by name
IIActorRef<?> multiplexerActor = system.getIIActor("outputMultiplexer");
multiplexerActor.callByActionName("add", jsonArg);
- Since:
- 2.12.0
- Author:
- devteam@scivicslab.com
-
Field Summary
Fields inherited from class com.scivicslab.pojoactor.core.ActorRef
actorName, actorSystem, object -
Constructor Summary
ConstructorsConstructorDescriptionMultiplexerAccumulatorIIAR(String actorName, MultiplexerAccumulator object, IIActorSystem system) Constructs a new MultiplexerAccumulatorIIAR. -
Method Summary
Modifier and TypeMethodDescriptionAdds output to all registered accumulators.Clears all accumulated entries.Returns the number of added entries.getSummary(String arg) Returns formatted summary from all accumulators.Methods inherited from class com.scivicslab.pojoactor.workflow.IIActorRef
callByActionName, hasAnnotatedAction, invokeAnnotatedAction, parseFirstArgumentMethods inherited from class com.scivicslab.pojoactor.core.ActorRef
ask, ask, askNow, clearJsonState, clearPendingMessages, close, createChild, expandVariables, getJsonBoolean, getJsonInt, getJsonString, getJsonString, getLastResult, getName, getNamesOfChildren, getParentName, hasJson, hasJsonState, initLogger, isAlive, json, putJson, setLastResult, setParentName, system, tell, tell, tellNow, toStringOfJson, toStringOfYaml
-
Constructor Details
-
MultiplexerAccumulatorIIAR
public MultiplexerAccumulatorIIAR(String actorName, MultiplexerAccumulator object, IIActorSystem system) Constructs a new MultiplexerAccumulatorIIAR.- Parameters:
actorName- the name of this actor (e.g., "outputMultiplexer")object- the MultiplexerAccumulator instancesystem- the actor system
-
-
Method Details
-
add
Adds output to all registered accumulators.Parses the JSON argument and forwards to the multiplexer, which then distributes to all registered target accumulators.
- Parameters:
arg- JSON object with source, type, and data fields- Returns:
- ActionResult indicating success or failure
-
getSummary
Returns formatted summary from all accumulators.- Parameters:
arg- not used- Returns:
- ActionResult with the formatted summary
-
getCount
Returns the number of added entries.- Parameters:
arg- not used- Returns:
- ActionResult with the count
-
clear
Clears all accumulated entries.- Parameters:
arg- not used- Returns:
- ActionResult indicating success
-