private void generateExtensibilityMethods( final StringBuilder sb, final String typeName, final Token token) { sb.append(String.format( "\nfunc (*%1$s) SbeBlockLength() (blockLength uint) {\n" + "\treturn %2$s\n" + "}\n" + "\nfunc (*%1$s) SbeSchemaVersion() (schemaVersion %3$s) {\n" + "\treturn %4$s\n" + "}\n", typeName, generateLiteral(ir.headerStructure().blockLengthType(), Integer.toString(token.encodedLength())), golangTypeName(ir.headerStructure().schemaVersionType()), generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())))); }
generateRustLiteral(header.schemaIdType(), Integer.toString(ir.id()))); indent(writer, 4, "%s: %s,\n", formatMethodName("version"), generateRustLiteral(header.schemaVersionType(), Integer.toString(ir.version())));
generateLiteral(ir.headerStructure().schemaIdType(), Integer.toString(ir.id())), schemaVersionType, generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())));
generateLiteral(ir.headerStructure().schemaIdType(), Integer.toString(ir.id())), schemaVersionType, generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())));
@Test public void shouldDecodeCorrectFrame() throws Exception { final MessageSchema schema = parse(TestUtil.getLocalResource( "code-generation-schema.xml"), ParserOptions.DEFAULT); final IrGenerator irg = new IrGenerator(); final Ir ir = irg.generate(schema); final ByteBuffer buffer = ByteBuffer.allocateDirect(CAPACITY); final IrEncoder irEncoder = new IrEncoder(buffer, ir); irEncoder.encode(); buffer.flip(); final IrDecoder irDecoder = new IrDecoder(buffer); final Ir decodedIr = irDecoder.decode(); assertThat(decodedIr.id(), is(ir.id())); assertThat(decodedIr.version(), is(ir.version())); assertThat(decodedIr.semanticVersion(), is(ir.semanticVersion())); assertThat(decodedIr.packageName(), is(ir.packageName())); assertThat(decodedIr.namespaceName(), is(ir.namespaceName())); }
generateLiteral(ir.headerStructure().schemaIdType(), Integer.toString(ir.id())), schemaVersionType, generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())), semanticType));
generateLiteral(headerStructure.schemaIdType(), Integer.toString(ir.id())), schemaVersionType, generateLiteral(headerStructure.schemaVersionType(), Integer.toString(ir.version())), className, semanticType,
private int encodeFrame() { frameEncoder .wrap(directBuffer, 0) .irId(ir.id()) .irVersion(0) .schemaVersion(ir.version()); try { final byte[] packageBytes = ir.packageName().getBytes(packageNameCharacterEncoding()); frameEncoder.putPackageName(packageBytes, 0, packageBytes.length); final byte[] namespaceBytes = getBytes(ir.namespaceName(), namespaceNameCharacterEncoding()); frameEncoder.putNamespaceName(namespaceBytes, 0, namespaceBytes.length); final byte[] semanticVersionBytes = getBytes(ir.semanticVersion(), semanticVersionCharacterEncoding()); frameEncoder.putSemanticVersion(semanticVersionBytes, 0, semanticVersionBytes.length); } catch (final UnsupportedEncodingException ex) { LangUtil.rethrowUnchecked(ex); } return frameEncoder.encodedLength(); }
generateLiteral(ir.headerStructure().schemaIdType(), Integer.toString(ir.id())), schemaVersionType, generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())), semanticType, className);
@Test public void shouldGenerateAndEncodeIr() throws Exception { System.setProperty(SbeTool.KEYWORD_APPEND_TOKEN, "_"); final ParserOptions options = ParserOptions.builder().stopOnError(true).build(); final MessageSchema schema = parse(TestUtil.getLocalResource("FixBinary.xml"), options); final IrGenerator irg = new IrGenerator(); final Ir ir = irg.generate(schema); final ByteBuffer buffer = ByteBuffer.allocate(1024 * 1024); final IrEncoder irEncoder = new IrEncoder(buffer, ir); irEncoder.encode(); buffer.flip(); final IrDecoder irDecoder = new IrDecoder(buffer); final Ir decodedIr = irDecoder.decode(); assertEquals(ir.id(), decodedIr.id()); assertEquals(ir.version(), decodedIr.version()); assertEquals(ir.byteOrder(), decodedIr.byteOrder()); assertEquals(ir.applicableNamespace(), decodedIr.applicableNamespace()); assertEquals(ir.packageName(), decodedIr.packageName()); assertEquals(ir.types().size(), decodedIr.types().size()); assertEquals(ir.messages().size(), decodedIr.messages().size()); } }
generateLiteral(ir.headerStructure().schemaIdType(), Integer.toString(ir.id())), schemaVersionType, generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())), semanticType, className,
private void validateVersion(final int schemaId, final int actingVersion) { if (actingVersion > ir.version()) { throw new IllegalArgumentException( String.format("Required schema id %d but was actually %d", ir.id(), schemaId)); } }
private void generateExtensibilityMethods( final StringBuilder sb, final String typeName, final Token token) { sb.append(String.format( "\nfunc (*%1$s) SbeBlockLength() (blockLength uint) {\n" + "\treturn %2$s\n" + "}\n" + "\nfunc (*%1$s) SbeSchemaVersion() (schemaVersion %3$s) {\n" + "\treturn %4$s\n" + "}\n", typeName, generateLiteral(ir.headerStructure().blockLengthType(), Integer.toString(token.encodedLength())), golangTypeName(ir.headerStructure().schemaVersionType()), generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())))); }
private void generateExtensibilityMethods( final StringBuilder sb, final String typeName, final Token token) { sb.append(String.format( "\nfunc (*%1$s) SbeBlockLength() (blockLength uint) {\n" + "\treturn %2$s\n" + "}\n" + "\nfunc (*%1$s) SbeSchemaVersion() (schemaVersion %3$s) {\n" + "\treturn %4$s\n" + "}\n", typeName, generateLiteral(ir.headerStructure().blockLengthType(), Integer.toString(token.encodedLength())), golangTypeName(ir.headerStructure().schemaVersionType()), generateLiteral(ir.headerStructure().schemaVersionType(), Integer.toString(ir.version())))); }
private int encodeFrame() { frameEncoder .wrap(directBuffer, 0) .irId(ir.id()) .irVersion(0) .schemaVersion(ir.version()); try { final byte[] packageBytes = ir.packageName().getBytes(packageNameCharacterEncoding()); frameEncoder.putPackageName(packageBytes, 0, packageBytes.length); final byte[] namespaceBytes = getBytes(ir.namespaceName(), namespaceNameCharacterEncoding()); frameEncoder.putNamespaceName(namespaceBytes, 0, namespaceBytes.length); final byte[] semanticVersionBytes = getBytes(ir.semanticVersion(), semanticVersionCharacterEncoding()); frameEncoder.putSemanticVersion(semanticVersionBytes, 0, semanticVersionBytes.length); } catch (final UnsupportedEncodingException ex) { LangUtil.rethrowUnchecked(ex); } return frameEncoder.encodedLength(); }
private int encodeFrame() { frameEncoder .wrap(directBuffer, 0) .irId(ir.id()) .irVersion(0) .schemaVersion(ir.version()); try { final byte[] packageBytes = ir.packageName().getBytes(packageNameCharacterEncoding()); frameEncoder.putPackageName(packageBytes, 0, packageBytes.length); final byte[] namespaceBytes = getBytes(ir.namespaceName(), namespaceNameCharacterEncoding()); frameEncoder.putNamespaceName(namespaceBytes, 0, namespaceBytes.length); final byte[] semanticVersionBytes = getBytes(ir.semanticVersion(), semanticVersionCharacterEncoding()); frameEncoder.putSemanticVersion(semanticVersionBytes, 0, semanticVersionBytes.length); } catch (final UnsupportedEncodingException ex) { LangUtil.rethrowUnchecked(ex); } return frameEncoder.encodedLength(); }
private int encodeFrame() { frameEncoder .wrap(directBuffer, 0) .irId(ir.id()) .irVersion(0) .schemaVersion(ir.version()); try { final byte[] packageBytes = ir.packageName().getBytes(packageNameCharacterEncoding()); frameEncoder.putPackageName(packageBytes, 0, packageBytes.length); final byte[] namespaceBytes = getBytes(ir.namespaceName(), namespaceNameCharacterEncoding()); frameEncoder.putNamespaceName(namespaceBytes, 0, namespaceBytes.length); final byte[] semanticVersionBytes = getBytes(ir.semanticVersion(), semanticVersionCharacterEncoding()); frameEncoder.putSemanticVersion(semanticVersionBytes, 0, semanticVersionBytes.length); } catch (final UnsupportedEncodingException ex) { LangUtil.rethrowUnchecked(ex); } return frameEncoder.encodedLength(); }