[jboss-jira] [JBoss JIRA] (JGRP-2122) Streamable class might implement SizeStreamable

Bela Ban (JIRA) issues at jboss.org
Thu Nov 10 06:02:00 EST 2016


     [ https://issues.jboss.org/browse/JGRP-2122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bela Ban updated JGRP-2122:
---------------------------
    Labels: Beta3  (was: )


> Streamable class might implement SizeStreamable
> -----------------------------------------------
>
>                 Key: JGRP-2122
>                 URL: https://issues.jboss.org/browse/JGRP-2122
>             Project: JGroups
>          Issue Type: Enhancement
>            Reporter: Bela Ban
>            Assignee: Bela Ban
>              Labels: Beta3
>             Fix For: 4.0
>
>
> Many classes implement Streamable, but also provide a serializedSize() method which returns the number of bytes needed for the serialized form.
> Methods like Util.streamableToBuffer() could benefit from this: instead of allocating a 512 byte buffer, which is either too big or needs to be resized later, we can allocate a buffer of the exact size.
> We should therefore make all classes implementing Streamable instead implement SizeStreamable.
> Code that makes use of this:
> {code:java|title=Util.streamableToBuffer()|borderStyle=solid}
> public static Buffer streamableToBuffer(Streamable obj) {
>         int expected_size=obj instanceof SizeStreamable? 
>                ((SizeStreamable)obj).serializedSize() +1 : 512;
>         final ByteArrayDataOutputStream out=new ByteArrayDataOutputStream(expected_size);
>         try {
>             Util.writeStreamable(obj,out);
>             return out.getBuffer();
>         }
>         catch(Exception ex) {
>             return null;
>         }
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list