Class OfflineIterable<T,U extends T>

java.lang.Object
it.unimi.dsi.io.OfflineIterable<T,U>
All Implemented Interfaces:
Size64, SafelyCloseable, Closeable, AutoCloseable, Iterable<U>

public class OfflineIterable<T,U extends T> extends Object implements Iterable<U>, SafelyCloseable, Size64
An iterable that offers elements that were previously stored offline using specialized serialization methods. At construction, you provide a serializer that establishes how elements are written offline; after that, you can add elements one at a time or in a bulk way. At any moment, you can get an OfflineIterator on this object that returns all the elements added so far. Note that the returned iterator caches the current number of elements, so each iterator will return just the elements added at the time of its creation.

Warning: The store object provided at construction time is shared by all iterators.

Closing

Both OfflineIterable and OfflineIterator are SafelyCloseable (the latter will close its input stream when hasNext() returns false), but for better resource management you should close them after usage.

Since:
0.9.2
Author:
Sebastiano Vigna
  • Field Details

  • Constructor Details

    • OfflineIterable

      public OfflineIterable(OfflineIterable.Serializer<? super T,U> serializer, U store) throws IOException
      Creates an offline iterable with given serializer.
      Parameters:
      serializer - the serializer to be used.
      store - an object that is (re)used by the iterator(s) iterating on this iterable.
      Throws:
      IOException
  • Method Details

    • add

      public void add(T x) throws IOException
      Adds a new element at the end of this iterable.
      Parameters:
      x - the element to be added.
      Throws:
      IOException
    • addAll

      public void addAll(Iterable<T> it) throws IOException
      Adds all the elements of the given iterable at the end of this iterable.
      Parameters:
      it - the iterable producing the elements to be added.
      Throws:
      IOException
    • iterator

      public OfflineIterable.OfflineIterator<T,U> iterator()
      Specified by:
      iterator in interface Iterable<T>
    • clear

      public void clear() throws IOException
      Throws:
      IOException
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • finalize

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • size

      @Deprecated public int size()
      Deprecated.
      Use size64() instead.
      Returns the number of elements added so far, unless it is too big to fit in an integer (in which case this method will throw an exception).
      Specified by:
      size in interface Size64
      Returns:
      the number of elements added so far.
    • size64

      public long size64()
      Returns the number of elements added so far.
      Specified by:
      size64 in interface Size64
      Returns:
      the number of elements added so far.