使用Preon的字节对齐问题

时间:2011-02-02 21:45:00

标签: java preon

各位大家好:) 我目前正在使用preon进行业余时间项目,我遇到了以下问题:我正在尝试使用以下代码读取固定长度的字符串:

@Bound int string_size;
@ByteAlign @BoundString(size = "string_size") my_string;

文件规范需要一个变量填充,以便下一个块的偏移量是4的倍数。 例如,如果string_size = 5,则将添加3个空字节,依此类推。我最初认为@ByteAlign注释完全是这样,但是,在查看源代码时,我意识到情况并非如此。

我试图快速解决这个问题:

@If ("string_size % 4 == 2") @BoundList(size = "2", type = Byte.class) byte[] padding;

可悲的是,Limbo似乎不支持“%”运算符。有办法解决这个问题吗?

(另外,我在哪里/如何获得最新版本?) 提前谢谢。

1 个答案:

答案 0 :(得分:0)

Preon目前没有针对您内置问题的解决方案。正如你所说,它的表达式语言没有模运算符,看起来你可以使用它。你可以然后实现自己的CodecDecorator,这可能是你想要做的事情。您可以实现一个CodecDecorator,它在解码值后插入一个读取几个extrac字节的Codec。

最新版本的Preon在Codehaus:

GIT中://git.codehaus.org/preon.git

你可以检查头部,但是还有一个名为PREON-35的独立分支,其中包含用于执行所讨论的内容的位over here