Why not just call ByteBuffer.wrap?  The array that is returned today is already 
copied.  When you wrap, you’re essentially creating a ByteBuffer that 
references the byte[] passed back by zeromq.  When you allocate direct, you’re 
unnecessarily copying this byte[] again.

Parag

From: zeromq-dev-boun...@lists.zeromq.org 
[mailto:zeromq-dev-boun...@lists.zeromq.org] On Behalf Of Trevor Bernard
Sent: Monday, May 13, 2013 12:59 PM
To: ZeroMQ development list
Subject: [zeromq-dev] ByteBuffer API for JZMQ

In the next couple of days I will be writing a ByteByffer API for JZMQ I would 
like to hear the communities thoughts.

I was thinking of something along the lines of:

int sendByteBuffer(ByteBuffer bb, int flags);
int recvByteBuffer(ByteBuffer bb, int flags);
int recvByteBuffer(int flags);

Implementation seems straightforward enough. Though it really only makes sense 
to use a Direct ByteBuffer since it's allocated off the heap and can be passed 
to libzmq without a copy. Otherwise you'd have to copy the underlying byte[].

So does it make sense to only support a direct bytebuffer?

Thoughts?

-Trev
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to