Class MultiplexerAccumulatorIIAR

All Implemented Interfaces:
CallableByActionName, AutoCloseable

public class MultiplexerAccumulatorIIAR extends 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 accumulators
  • getSummary - Returns formatted summary
  • getCount - Returns the number of added entries
  • clear - 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
  • 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 instance
      system - the actor system
  • Method Details

    • add

      public ActionResult add(String arg)
      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

      public ActionResult getSummary(String arg)
      Returns formatted summary from all accumulators.
      Parameters:
      arg - not used
      Returns:
      ActionResult with the formatted summary
    • getCount

      public ActionResult getCount(String arg)
      Returns the number of added entries.
      Parameters:
      arg - not used
      Returns:
      ActionResult with the count
    • clear

      public ActionResult clear(String arg)
      Clears all accumulated entries.
      Parameters:
      arg - not used
      Returns:
      ActionResult indicating success