Moved envelopes to kotlin. New implementation for tagless envelope via NIO
This commit is contained in:
parent
320ee2f5b0
commit
b2f0488a51
@ -83,7 +83,7 @@ public class NumassClient implements AutoCloseable, Responder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void write(Envelope envelope, OutputStream os) throws IOException {
|
private void write(Envelope envelope, OutputStream os) throws IOException {
|
||||||
DefaultEnvelopeType.instance.getWriter().write(os, envelope);
|
DefaultEnvelopeType.Companion.getINSTANCE().getWriter().write(os, envelope);
|
||||||
os.flush();
|
os.flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,8 +9,6 @@ import java.nio.ByteBuffer;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static hep.dataforge.io.envelopes.DefaultEnvelopeType.DEFAULT_ENVELOPE_TYPE;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An envelope type for legacy numass tags. Reads legacy tag and writes DF02 tags
|
* An envelope type for legacy numass tags. Reads legacy tag and writes DF02 tags
|
||||||
*/
|
*/
|
||||||
@ -21,7 +19,7 @@ public class NumassEnvelopeType implements EnvelopeType {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCode() {
|
public int getCode() {
|
||||||
return DEFAULT_ENVELOPE_TYPE;
|
return DefaultEnvelopeType.DEFAULT_ENVELOPE_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -41,7 +39,7 @@ public class NumassEnvelopeType implements EnvelopeType {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EnvelopeWriter getWriter(Map<String, String> properties) {
|
public EnvelopeWriter getWriter(Map<String, String> properties) {
|
||||||
return new DefaultEnvelopeWriter(this, MetaType.resolve(properties));
|
return new DefaultEnvelopeWriter(this, MetaType.Companion.resolve(properties));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class LegacyTag extends EnvelopeTag {
|
public static class LegacyTag extends EnvelopeTag {
|
||||||
@ -71,25 +69,25 @@ public class NumassEnvelopeType implements EnvelopeType {
|
|||||||
* @return
|
* @return
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
protected Map<String, Value> readHeader(ByteBuffer buffer) throws IOException {
|
protected Map<String, Value> readHeader(ByteBuffer buffer) {
|
||||||
Map<String, Value> res = new HashMap<>();
|
Map<String, Value> res = new HashMap<>();
|
||||||
|
|
||||||
int type = buffer.getInt(2);
|
int type = buffer.getInt(2);
|
||||||
res.put(Envelope.TYPE_KEY, Value.of(type));
|
res.put(Envelope.Companion.TYPE_KEY, Value.of(type));
|
||||||
|
|
||||||
short metaTypeCode = buffer.getShort(10);
|
short metaTypeCode = buffer.getShort(10);
|
||||||
MetaType metaType = MetaType.resolve(metaTypeCode);
|
MetaType metaType = MetaType.Companion.resolve(metaTypeCode);
|
||||||
|
|
||||||
if (metaType != null) {
|
if (metaType != null) {
|
||||||
res.put(Envelope.META_TYPE_KEY, Value.of(metaType.getName()));
|
res.put(Envelope.Companion.META_TYPE_KEY, Value.of(metaType.getName()));
|
||||||
} else {
|
} else {
|
||||||
LoggerFactory.getLogger(EnvelopeTag.class).warn("Could not resolve meta type. Using default");
|
LoggerFactory.getLogger(EnvelopeTag.class).warn("Could not resolve meta type. Using default");
|
||||||
}
|
}
|
||||||
|
|
||||||
long metaLength = Integer.toUnsignedLong(buffer.getInt(14));
|
long metaLength = Integer.toUnsignedLong(buffer.getInt(14));
|
||||||
res.put(Envelope.META_LENGTH_KEY, Value.of(metaLength));
|
res.put(Envelope.Companion.META_LENGTH_KEY, Value.of(metaLength));
|
||||||
long dataLength = Integer.toUnsignedLong(buffer.getInt(22));
|
long dataLength = Integer.toUnsignedLong(buffer.getInt(22));
|
||||||
res.put(Envelope.DATA_LENGTH_KEY, Value.of(dataLength));
|
res.put(Envelope.Companion.DATA_LENGTH_KEY, Value.of(dataLength));
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -131,7 +131,7 @@ object NumassUtils {
|
|||||||
|
|
||||||
fun writeEnvelope(stream: OutputStream, envelope: Envelope) {
|
fun writeEnvelope(stream: OutputStream, envelope: Envelope) {
|
||||||
try {
|
try {
|
||||||
DefaultEnvelopeType.instance.writer.write(stream, envelope)
|
DefaultEnvelopeType.INSTANCE.writer.write(stream, envelope)
|
||||||
stream.flush()
|
stream.flush()
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
throw RuntimeException(e)
|
throw RuntimeException(e)
|
||||||
|
Loading…
Reference in New Issue
Block a user