expose method to create parser from direct memory#435
expose method to create parser from direct memory#435arnaudroger wants to merge 1 commit intomsgpack:mainfrom
Conversation
|
@komamitsu Could you review this change? This seems a good improvement. |
komamitsu
left a comment
There was a problem hiding this comment.
@arnaudroger Thanks for the contribution! It seems a cool feature.
But I have some questions. Can I ask you to take a look at them?
| * @param address the address | ||
| * @param offset the offset | ||
| * @param length the length | ||
| * @return a new ByteBufferInput on the specified address |
There was a problem hiding this comment.
This static method returns ByteBuffer not ByteBufferInput
| */ | ||
| public static ByteBuffer directBuffer(long address, int offset, int length) | ||
| { | ||
| return DirectBufferAccess.newByteBuffer(address, offset, length, null); |
There was a problem hiding this comment.
It doesn't seem to me that this method is related to ByteBufferInput.
@xerial Do you think this is the right place to put the method in?
There was a problem hiding this comment.
We can make DirectBufferAccess a public class instead of adding this method.
There was a problem hiding this comment.
Actually this location is a bit weird.
| IOContext ioContext = _createContext(data, false); | ||
| return _createParser(data, offset, length, ioContext); | ||
| } | ||
|
|
There was a problem hiding this comment.
As you might notice since this method doesn't have @Override annotation, Jackson doesn't support this kind of API, I think.
How do you use this method via Jackson's API? It would be great, if you add some unit tests to make it clear 😺
There was a problem hiding this comment.
I use the MessagePackFactory directly, currently using reflection.
Useful to parse message coming in from netty for example without creating a lot of garbage.
Also expose the method to create a parser from a sub array.