DoublePrecisionFloatEncoder.java
package co.nstant.in.cbor.encoder;
import java.io.OutputStream;
import co.nstant.in.cbor.CborEncoder;
import co.nstant.in.cbor.CborException;
import co.nstant.in.cbor.model.DoublePrecisionFloat;
public class DoublePrecisionFloatEncoder extends AbstractEncoder<DoublePrecisionFloat> {
public DoublePrecisionFloatEncoder(CborEncoder encoder, OutputStream outputStream) {
super(encoder, outputStream);
}
@Override
public void encode(DoublePrecisionFloat dataItem) throws CborException {
write((7 << 5) | 27);
long bits = Double.doubleToRawLongBits(dataItem.getValue());
write((int) ((bits >> 56) & 0xFF));
write((int) ((bits >> 48) & 0xFF));
write((int) ((bits >> 40) & 0xFF));
write((int) ((bits >> 32) & 0xFF));
write((int) ((bits >> 24) & 0xFF));
write((int) ((bits >> 16) & 0xFF));
write((int) ((bits >> 8) & 0xFF));
write((int) ((bits >> 0) & 0xFF));
}
}