RLPark 1.0.0
Reinforcement Learning Framework in Java
|
00001 package zephyr.plugin.core.api; 00002 00003 import java.util.ArrayList; 00004 import java.util.List; 00005 00006 import zephyr.plugin.core.api.internal.monitoring.abstracts.MonitorRegistry; 00007 import zephyr.plugin.core.api.internal.monitoring.abstracts.MonitorSynchronizer; 00008 import zephyr.plugin.core.api.monitoring.abstracts.DataMonitor; 00009 import zephyr.plugin.core.api.signals.Signal; 00010 import zephyr.plugin.core.api.synchronization.Clock; 00011 00012 public class Zephyr { 00013 static public class AdvertisementInfo { 00014 public final Clock clock; 00015 public final Object advertised; 00016 public final String label; 00017 00018 AdvertisementInfo(Clock clock, Object advertised, String label) { 00019 this.clock = clock; 00020 this.advertised = advertised; 00021 this.label = label; 00022 } 00023 } 00024 00025 static public final Signal<AdvertisementInfo> onAdvertised = new Signal<AdvertisementInfo>(); 00026 00027 static public void advertise(Clock clock, Object advertised) { 00028 advertise(clock, advertised, null); 00029 } 00030 00031 static public void advertise(Clock clock, Object advertised, String label) { 00032 onAdvertised.fire(new AdvertisementInfo(clock, advertised, label)); 00033 } 00034 00035 static public DataMonitor getSynchronizedMonitor(Clock clock) { 00036 List<DataMonitor> monitors = new ArrayList<DataMonitor>(); 00037 for (MonitorSynchronizer factory : MonitorRegistry.factories) 00038 monitors.add(factory.getSyncMonitor(clock)); 00039 return new MonitorRegistry.MonitorCollection(monitors); 00040 } 00041 }