// @(#)HelloWorld1.java import drcl.comp.*; /** This component sends "Hello World!" at "port@" every period seconds. */ public class HelloWorld1 extends drcl.comp.Component implements drcl.comp.RestartableComponent { double period = 0.5; // second Port port = addPort("port", false); /** Constructor. */ public HelloWorld1() { super(); } /** Constructor. */ public HelloWorld1(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 = ((HelloWorld1)source_).period; } public String info() { return "Period = " + period + "\n"; } // Starts as an ActiveComponent. protected void _start() { while (true) { port.doSending("Hello World!\n"); sleepFor(period); if (isStopped()) wait(this); } } // Resumes this ActiveComponent. protected void _resume() { notifyAll(this); } public void setPeriod(double period_) { period = period_; } public double getPeriod() { return period; } }