org.hwo.pulscounter/src/org/hwo/pulscounter/service/PulsCounterService.java

73 lines
1.5 KiB
Java

package org.hwo.pulscounter.service;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.hwo.beacon.Beacon;
import org.hwo.pulscounter.IPulsCounter;
import org.hwo.pulscounter.NewPulsCounterDevice;
import org.hwo.rpc.simple.SimpleRPCServer;
public class PulsCounterService {
private NewPulsCounterDevice localDevice;
private SimpleRPCServer localRPCServer;
private Beacon serviceBeacon;
public PulsCounterService(){
serviceBeacon = new Beacon(44556);
serviceBeacon.getProperties().setProperty("rpc.simple.interfaces", "org.hwo.pulsecounter");
serviceBeacon.getProperties().setProperty("rpc.simple.port", "44352");
serviceBeacon.setServerOnly(true);
}
public void start(){
if (localDevice == null){
localDevice = new NewPulsCounterDevice();
try {
localRPCServer = new SimpleRPCServer(InetAddress.getByName("0.0.0.0"), 44352);
localRPCServer.registerObject(IPulsCounter.class, localDevice);
localRPCServer.start();
serviceBeacon.start();
} catch (Exception e) {
localDevice = null;
e.printStackTrace();
}
}
}
public void stop(){
if (serviceBeacon.isAlive())
serviceBeacon.exit();
if (localDevice != null){
localRPCServer.exit();
localDevice.close();
localDevice = null;
}
}
public boolean isActive() {
return (serviceBeacon.isAlive());
}
public NewPulsCounterDevice getLocalDevice(){
return localDevice;
}
void setLocalDevice(NewPulsCounterDevice device){
localDevice = device;
}
}