Class MultiplexerAccumulatorIIAR
java.lang.Object
com.scivicslab.pojoactor.core.ActorRef<MultiplexerAccumulator>
com.scivicslab.pojoactor.workflow.IIActorRef<MultiplexerAccumulator>
com.scivicslab.actoriac.accumulator.MultiplexerAccumulatorIIAR
- All Implemented Interfaces:
com.scivicslab.pojoactor.core.CallableByActionName, AutoCloseable
public class MultiplexerAccumulatorIIAR
extends com.scivicslab.pojoactor.workflow.IIActorRef<MultiplexerAccumulator>
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
FieldsFields inherited from class com.scivicslab.pojoactor.core.ActorRef
actorName, actorSystem, object -
Constructor Summary
ConstructorsConstructorDescriptionMultiplexerAccumulatorIIAR(String actorName, MultiplexerAccumulator object, com.scivicslab.pojoactor.workflow.IIActorSystem system) Constructs a new MultiplexerAccumulatorIIAR. -
Method Summary
Modifier and TypeMethodDescriptioncom.scivicslab.pojoactor.core.ActionResultAdds output to all registered accumulators.com.scivicslab.pojoactor.core.ActionResultClears all accumulated entries.com.scivicslab.pojoactor.core.ActionResultReturns the number of added entries.com.scivicslab.pojoactor.core.ActionResultgetSummary(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
-
Field Details
-
logger
-
-
Constructor Details
-
MultiplexerAccumulatorIIAR
public MultiplexerAccumulatorIIAR(String actorName, MultiplexerAccumulator object, com.scivicslab.pojoactor.workflow.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
-
clear
-