![JAR search and dependency download from the Maven repository](/logo.png)
org.bdware.doip.event.ConsistencyCheckSubscriber Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of doip-audit-tool Show documentation
Show all versions of doip-audit-tool Show documentation
doip audit tool developed by bdware
The newest version!
package org.bdware.doip.event;
import com.google.gson.JsonObject;
import org.bdware.doip.codec.doipMessage.DoipMessage;
import org.bdware.doip.codec.doipMessage.DoipMessageFactory;
import org.bdware.doip.codec.doipMessage.DoipResponseCode;
import org.bdware.doip.endpoint.event.Subscriber;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
public abstract class ConsistencyCheckSubscriber implements Subscriber {
PersistencePublisher publisher;
KVStore uncommitedMessage;
KVStore topicList;
public ConsistencyCheckSubscriber(KVStore topicList, KVStore messageStorage, PersistencePublisher publisher) {
this.topicList = topicList;
this.uncommitedMessage = messageStorage;
this.publisher = publisher;
}
@Override
public DoipMessage receiveData(String topicId, String publishId, DoipMessage request) {
try {
//TODO 存入storageManager,后续需要加入校验
//如果校验通过了
onReceiveData(topicId, publishId, request);
//如果校验没通过,把它缓存起来,向客户端去请求丢失的数据?验证?
//待前面的消息拿到了之后,调用onReceiveData
DoipMessageFactory.DoipMessageBuilder builder = new DoipMessageFactory.DoipMessageBuilder();
builder.createResponse(DoipResponseCode.Success, request).setBody(request.body.getEncodedData());
return builder.create();
} catch (Exception e) {
ByteArrayOutputStream bo = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(bo));
DoipMessageFactory.DoipMessageBuilder builder = new DoipMessageFactory.DoipMessageBuilder();
builder.createResponse(DoipResponseCode.UnKnownError, request);
builder.setBody(bo.toByteArray());
return builder.create();
}
}
@Override
public DoipMessage receiveHash(String topicId, String subscriberId, DoipMessage data) {
//TODO
throw new IllegalStateException("unsupported message type");
}
@Override
public DoipMessage receiveDataAndHash(String topicId, String subscriberId, DoipMessage data) {
//TODO
throw new IllegalStateException("unsupported message type");
}
@Override
public void receiveMerkelConfiguration(String topicId, JsonObject configuration, DoipMessage request) {
//unsupported message type
return;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy