[ https://issues.apache.org/jira/browse/DIRMINA-507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12555998#action_12555998 ]
David M. Lloyd commented on DIRMINA-507: ---------------------------------------- I guess the "prepend*()" methods would be more efficient overall than returning a slice, since a slice would always incur the overhead of, well, creating a slice, even if all you're doing is writing a single byte or int. > IoBuffer: Support prepending data > --------------------------------- > > Key: DIRMINA-507 > URL: https://issues.apache.org/jira/browse/DIRMINA-507 > Project: MINA > Issue Type: New Feature > Components: Core > Reporter: David M. Lloyd > Priority: Minor > > I'd like to see IoBuffer enhanced to support prepending data. It could work > as follows: > * A means to specificy or reserve space should be provided. An > IoBuffer.reserve() method could do the trick, and maybe a 3-parameter version > of IoBuffer. IoBuffer.reserve() would keep the position at zero, but > decrease the capacity and limit by the given number of bytes, and move the > buffer start up by the given number of bytes. > * A means to reclaim the space must be provided. An IoBuffer.reclaim() would > work by moving the buffer start back down by the given amount, maybe > returning a slice to the recovered area. Or another alternative would be to > have a series of prepend* methods which would prepend bytes/ints/etc. similar > to put*(), but rather than adding to the end of the buffer, they would add to > the beginning, moving the buffer start back down to the start of the > just-written data. Though I'm not sure how helpful it would be to add > another dozen methods to a class that already has probably over a hundred > methods. > * Care should be taken that the mechanism to prepend data does not allow a > user to "escape" a buffer slice. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.