diff options
author | mk1 <mk1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-03-21 23:58:03 +0000 |
---|---|---|
committer | mk1 <mk1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-03-21 23:58:03 +0000 |
commit | e6480acfb1f6ca1ec2622a0c7b9054412c8588b1 (patch) | |
tree | d088e8e5da79e438832e17f9a5983e7fffb31219 /TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java | |
parent | ee93e4f1e3a7b917d211fda735435169a6587683 (diff) | |
download | ATCD-e6480acfb1f6ca1ec2622a0c7b9054412c8588b1.tar.gz |
Sat Mar 21 17:55:40 1998 Michael Kircher <mk1@cs.wustl.edu>
Diffstat (limited to 'TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java')
-rw-r--r-- | TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java b/TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java new file mode 100644 index 00000000000..2eb358a4ef2 --- /dev/null +++ b/TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java @@ -0,0 +1,218 @@ +// $Id$ +// +// = FILENAME +// NavWeapDataHandler.java +// +// = AUTHOR +// Michael Kircher (mk1@cs.wustl.edu) +// +// = DESCRIPTION +// This is an implementation of the interface Data Handler, +// it handles Navigation and Weapons data, where statistic data is +// part of it. Several Observables are declared, they can be accessed by +// any number of Observers, which could reside in a Java Bean for example. +// +// ============================================================================ + +import org.omg.CORBA.*; + +public class NavWeapDataHandler implements DataHandler { + + java.util.Hashtable ObservablesTable; + int received_events_; + + + // Observable for Navigation data + class NavigationObservable extends DemoObservable { + + // to ask which kind of viewer is needed to display data + public int getProperty () { + return Properties.NAVIGATION; + } + + public void updateNavigation (Navigation navigation) { + setChanged (); + notifyObservers (navigation); + } + + } + + class WeaponsObservable extends DemoObservable { + + // to ask which kind of viewer is needed to display data + public int getProperty () { + return Properties.WEAPONS; + } + + public void updateWeapons (Weapons weapons) { + setChanged (); + notifyObservers (weapons); + } + } + + class Cpu_UsageObservable extends DemoObservable { + + public int getProperty () { + return Properties.DOUBLE; + } + + public void updateCpu_Usage (double utilization) { + setChanged (); + Double temp_ = new Double (utilization); + notifyObservers (temp_); + } + } + class OverheadObservable extends DemoObservable { + + public int getProperty () { + return Properties.DOUBLE; + } + + public void updateOverhead (double overhead) { + setChanged (); + Double temp_ = new Double (overhead); + notifyObservers (temp_); + } + } + class JitterObservable extends DemoObservable { + double latency = 0.0; + double last_latency = 0.0; + + public int getProperty () { + return Properties.DOUBLE; + } + + public void updateJitter (int completion_time, + int computation_time, + int arrival_time ) { + last_latency = latency; + latency = (double)(completion_time + - computation_time + - arrival_time); + latency = latency > 0 ? latency : 0; + double jitter_ = (double)Math.abs(latency - last_latency); + + setChanged (); + Double temp_ = new Double (jitter_); + notifyObservers (temp_); + } + } + class DeadlinesObservable extends DemoObservable { + + public int getProperty () { + return Properties.DOUBLE; + } + + public void updateDeadlines (int deadline_time, + int completion_time) { + double missed_ = (double) ((deadline_time + < completion_time) + ? 1.0 : 0.0); + + Double temp_ = new Double (missed_); + setChanged (); + notifyObservers (temp_); + } + } + class LatencyObservable extends DemoObservable { + double latency = 0.0; + double last_latency = 0.0; + + public int getProperty () { + return Properties.DOUBLE; + } + + public void updateLatency (int completion_time, + int computation_time, + int arrival_time ) { + last_latency = latency; + latency = (double)(completion_time + - computation_time + - arrival_time); + latency = latency > 0 ? latency : 0; + + setChanged (); + Double temp_ = new Double(latency); + notifyObservers (temp_); + } + } + + + public void update (Any any_value) { + + if (any_value.type().equal (NavigationHelper.type())) + { + Navigation navigation_ = NavigationHelper.extract (any_value); + NavigationObservable nobs = (NavigationObservable)ObservablesTable.get ("NavigationObservable"); + nobs.updateNavigation (navigation_); + Cpu_UsageObservable cobs = (Cpu_UsageObservable)ObservablesTable.get ("Cpu_UsageObservable"); + cobs.updateCpu_Usage (navigation_.utilization); + OverheadObservable oobs = (OverheadObservable)ObservablesTable.get ("OverheadObservable"); + oobs.updateOverhead (navigation_.overhead); + JitterObservable jobs = (JitterObservable)ObservablesTable.get ("JitterObservable"); + jobs.updateJitter (navigation_.completion_time, + navigation_.computation_time, + navigation_.arrival_time); + DeadlinesObservable dobs = (DeadlinesObservable)ObservablesTable.get ("DeadlinesObservable"); + dobs.updateDeadlines (navigation_.deadline_time, + navigation_.completion_time); + LatencyObservable lobs = (LatencyObservable)ObservablesTable.get ("LatencyObservable"); + lobs.updateLatency (navigation_.completion_time, + navigation_.computation_time, + navigation_.arrival_time); + received_events_++; + } + else if (any_value.type().equal (WeaponsHelper.type())) + { + Weapons weapons_ = WeaponsHelper.extract (any_value); + WeaponsObservable wobs = (WeaponsObservable)ObservablesTable.get ("WeaponsObservable");; + wobs.updateWeapons (weapons_); + Cpu_UsageObservable cobs = (Cpu_UsageObservable)ObservablesTable.get ("Cpu_UsageObservable"); + cobs.updateCpu_Usage (weapons_.utilization); + OverheadObservable oobs = (OverheadObservable)ObservablesTable.get ("OverheadObservable"); + oobs.updateOverhead (weapons_.overhead); + JitterObservable jobs = (JitterObservable)ObservablesTable.get ("JitterObservable"); + jobs.updateJitter (weapons_.completion_time, + weapons_.computation_time, + weapons_.arrival_time); + DeadlinesObservable dobs = (DeadlinesObservable)ObservablesTable.get ("DeadlinesObservable"); + dobs.updateDeadlines (weapons_.deadline_time, + weapons_.completion_time); + LatencyObservable lobs = (LatencyObservable)ObservablesTable.get ("LatencyObservable"); + lobs.updateLatency (weapons_.completion_time, + weapons_.computation_time, + weapons_.arrival_time); + received_events_++; + } + } + + NavWeapDataHandler () { + ObservablesTable = new java.util.Hashtable(); + + ObservablesTable.put ("NavigationObservable", new NavigationObservable()); + ObservablesTable.put ("WeaponsObservable", new WeaponsObservable()); + ObservablesTable.put ("Cpu_UsageObservable", new Cpu_UsageObservable()); + ObservablesTable.put ("OverheadObservable", new OverheadObservable()); + ObservablesTable.put ("JitterObservable", new JitterObservable()); + ObservablesTable.put ("DeadlinesObservable", new DeadlinesObservable()); + ObservablesTable.put ("LatencyObservable", new LatencyObservable()); + } + + public java.util.Enumeration getObservablesList () { + return ObservablesTable.keys (); + } + + public DemoObservable getObservable(String name) { + return (DemoObservable)ObservablesTable.get (name); + } + + public int getObservableProperty (String name) { + DemoObservable obs = (DemoObservable)ObservablesTable.get (name); + return obs.getProperty (); + } + +} + + + + |