// @(#)HelloWorld2.java import drcl.comp.*; /** This component sends "Hello World!" at "port@" every period seconds. */ public class HelloWorld2 extends drcl.comp.Component implements drcl.comp.RestartableComponent { double period = 0.5; // second Port port = addPort("port", false); /** Constructor. */ public HelloWorld2() { super(); } /** Constructor. */ public HelloWorld2(String id_) { super(id_); } public void reset() { super.reset(); // Let super class reset its fields. } public void duplicate(Object source_) { super.duplicate(source_); // Let super class copy its fields. period = ((HelloWorld2)source_).period; } public String info() { return "Period = " + period + "\n"; } protected void process(Object data_, Port inPort_) { if (!isStopped()) { port.doLastSending("Hello World!\n"); fork(port, "Hello World!", period); } } // Starts as an ActiveComponent. protected void _start() { port.doLastSending("Hello World!\n"); fork(port, "Hello World!", period); } // Resumes this ActiveComponent. protected void _resume() { _start(); } public void setPeriod(double period_) { period = period_; } public double getPeriod() { return period; } }