sventon subversion web client - http://www.sventon.org
[show recent changes]
 
  Help
HEAD
Rev: 16298 - svn://svn.freehep.org/svn / home / onoprien / LSST / Tester / org-lsst-ccs-subsystem-stagemover / main / src / main / java / org / lsst / ccs / subsystem / stagemover / main / MessengerModule.java
Show File - MessengerModule.java  [show properties]
Search for Help
spinner
package org.lsst.ccs.subsystem.stagemover.main;
import java.util.concurrent.CopyOnWriteArrayList;
import org.lsst.ccs.bus.messages.AgentInfo;
import org.lsst.ccs.bus.messages.StatusMessage;
import org.lsst.ccs.command.annotations.Command;
import org.lsst.ccs.command.annotations.Command.CommandType;
import org.lsst.ccs.framework.Module;
import org.lsst.ccs.messaging.AgentMessagingLayer;
10 
11  /**
12   *
13   * @author onoprien
14   */
15  public class MessengerModule extends Module {
16 
17  // -- Private parts : ----------------------------------------------------------
18    
19    private final CopyOnWriteArrayList<String> messages = new CopyOnWriteArrayList<>();
20 
21  // -- Life cycle : -------------------------------------------------------------
22    
23    public MessengerModule(String name, int tickMillis) {
24      super(name, tickMillis);
25    }
26 
27    @Override
28    public void initModule() {
29      super.initModule();
30    }
31 
32    @Override
33    public void shutdownNow() {
34      super.shutdownNow();
35    }
36    
37    
38  // -- Commands : ---------------------------------------------------------------
39    
40    @Command(description = "adds a status message to be sent on ticks",
41             type = CommandType.ACTION)
42    public void addMessage(String message) {
43      messages.add(message);
44 
45    }
46    
47    @Command(description = "removes a status message sent on ticks",
48             type = CommandType.ACTION)
49    public void removeMessage(String message) {
50      messages.remove(message);
51    }
52    
53    @Command(description = "sends a message",
54             type = CommandType.ACTION)
55    public void sendMessage(String message) {
56      AgentMessagingLayer messagingAccess = getSubsystem().getMessagingAccess();
57      StatusMessage sm = new StatusMessage();
58      sm.setSummary(message);
59      messagingAccess.sendStatusMessage(sm);
60    }
61    
62    
63  // -- Operation : --------------------------------------------------------------
64 
65    @Override
66    public void tick() {
67      try {
68        super.tick();
69        AgentMessagingLayer messagingAccess = getSubsystem().getMessagingAccess();
70        messages.forEach(message -> {
71          StatusMessage sm = new StatusMessage();
72          sm.setSummary(message);
73          messagingAccess.sendStatusMessage(sm);
74        });
75      } catch (Throwable x) {
76      }
77    }
78 
79  }


feed icon

sventon 2.5.1