📄 mutirepeatevent.java
字号:
package com.jzl.sirius.at.event;
import java.nio.ByteBuffer;
import com.jzl.sirius.at.ATEvent;
public class MutiRepeatEvent extends ATEvent {
private int count;
private MutiableEvent event;
private boolean eventStarted = false;
private int repeat = 0;
public MutiRepeatEvent(MutiableEvent event, int count) {
this.event = event;
this.count = count;
}
public void reset() {
super.reset();
eventStarted = false;
event.reset();
repeat = 0;
}
public boolean readResponse(ByteBuffer buffer) {
while(buffer.hasRemaining()){
if (eventStarted) {
boolean ret = event.readResponse(buffer);
if (ret){
repeat++;
if (repeat == count){
finish();
return true;
}
eventStarted = false;
event.reset();
continue;
}
}
else {
char ch = (char)buffer.get();
if (event.match(ch))
eventStarted = true;
}
}
return false;
}
public ATEvent getEvent() {
return event;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -