This commit is contained in:
86
plugins/Redis.java
Normal file
86
plugins/Redis.java
Normal file
@@ -0,0 +1,86 @@
|
||||
import ch.psi.pshell.scan.Scan;
|
||||
import ch.psi.pshell.scan.ScanListener;
|
||||
import ch.psi.pshell.scan.ScanRecord;
|
||||
import ch.psi.pshell.ui.Plugin;
|
||||
import ch.psi.utils.State;
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisPubSub;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class Redis implements Plugin {
|
||||
|
||||
public static final String KEY_START = "Scan Start";
|
||||
public static final String KEY_RECORD = "Record";
|
||||
public static final String KEY_END = "Scan End";
|
||||
public static final String CHANNEL_START = "Scan Start";
|
||||
public static final String CHANNEL_RECORD = "Record";
|
||||
public static final String CHANNEL_END = "Scan End";
|
||||
|
||||
Jedis jedis;
|
||||
|
||||
final ScanListener listener = new ScanListener() {
|
||||
@Override
|
||||
public void onScanStarted(Scan scan, String plotTitle) {
|
||||
jedis.publish(CHANNEL_START, scan.getResult().toString());
|
||||
jedis.set(KEY_START, scan.getResult().toString());
|
||||
jedis.del(KEY_RECORD);
|
||||
jedis.del(KEY_END);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNewRecord(Scan scan, ScanRecord record) {
|
||||
jedis.publish(CHANNEL_RECORD, record.toString());
|
||||
jedis.lpush(KEY_RECORD, record.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanEnded(Scan scan, Exception ex) {
|
||||
jedis.publish(CHANNEL_END,scan.getResult().getPath());
|
||||
jedis.set(KEY_END,scan.getResult().getPath());
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
//Overridable callbacks
|
||||
@Override
|
||||
public void onStart() {
|
||||
jedis = new Jedis();
|
||||
getContext().addScanListener(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
getContext().removeScanListener(listener);
|
||||
if (jedis!=null){
|
||||
jedis.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitialize(int runCount) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStateChange(State state, State former) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecutedFile(String fileName, Object result) {
|
||||
Jedis jSubscriber = new Jedis();
|
||||
jSubscriber.subscribe(new JedisPubSub() {
|
||||
@Override
|
||||
public void onMessage(String channel, String message) {
|
||||
// handle message
|
||||
}
|
||||
}, "channel");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user