On Nov 6, 2007 2:21 PM, Zsombor <[EMAIL PROTECTED]> wrote:
> On 11/6/07, Stefano Bagnara <[EMAIL PROTECTED]> wrote:
> >
> > Robert Burrell Donkin ha scritto:
> > > https://issues.apache.org/jira/browse/JAMES-734 discusses the general
> > > design of the API
> > >
> > > one major issue for IMAP ATM is that when FETCHing a large quantity of
> > > data, all that data has to be loaded into memory and then the full
> > > result created in a StringBuffer before the output begins. this uses a
> > > lot of memory.
> > >
> > > there are different ways to approach this issue. IMHO using arrays,
> > > lists or iterators is as much a matter of style than substance.
> > >
> > > one approach would be to use result objects which are lazily
> > > populated. this would be reasonably easy for Torque. this would also
> > > mean either adding a close() operation or making the content objects
> > > read-once allowing the result to recycle the memory.
> >
> > It seems Iterator is the right interface for this scenario.
> > Once you call next() the previous result is unrefereced.
> > Using iterator we don't need close() because they are already
> > "read-once", right?
>
>
>
> close would be beneficial, if you dont want to iterate over the result, only
> to get, for example the first result, and you want to ensure, that the
> allocated resources are released correcltly. Of course the implementation of
> this iterator calls the close method after the final element returned
> automaticaly.

+1

> Arrays are not an option because we cannot encapsulate an array so we
> > cannot lazyload it.
> >
> > Do we need to know the size() at the beginning or we can just loop while
> > there are new results? If we need the size Iterator is not enough and we
> > probably need a List, otherwise I would go with Iterator.
>
>
>
> +1

+1

- robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to