Class PollableInputStream

All Implemented Interfaces:
PointerInterface

public class PollableInputStream extends Interface
#GPollableInputStream is implemented by #GInputStreams that
can be polled for readiness to read. This can be used when
interfacing with a non-GIO API that expects
UNIX-file-descriptor-style asynchronous I/O rather than GIO-style.

https://docs.gtk.org/gio/iface.PollableInputStream.html

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • canPoll

      public boolean canPoll()
      Checks if @stream is actually pollable. Some classes may implement
      #GPollableInputStream but have only certain instances of that class
      be pollable. If this method returns %FALSE, then the behavior of
      other #GPollableInputStream methods is undefined.

      For any given stream, the value returned by this method is constant;
      a stream cannot switch from pollable to non-pollable or vice versa.
      Returns:
      %TRUE if @stream is pollable, %FALSE if not.
    • createSource

      public Source createSource(@Nullable Cancellable cancellable)
      Creates a #GSource that triggers when @stream can be read, or
      @cancellable is triggered or an error occurs. The callback on the
      source is of the #GPollableSourceFunc type.

      As with g_pollable_input_stream_is_readable(), it is possible that
      the stream may not actually be readable even after the source
      triggers, so you should use g_pollable_input_stream_read_nonblocking()
      rather than g_input_stream_read() from the callback.
      Parameters:
      cancellable - a #GCancellable, or %NULL
      Returns:
      a new #GSource
    • isReadable

      public boolean isReadable()
      Checks if @stream can be read.

      Note that some stream types may not be able to implement this 100%
      reliably, and it is possible that a call to g_input_stream_read()
      after this returns %TRUE would still block. To guarantee
      non-blocking behavior, you should always use
      g_pollable_input_stream_read_nonblocking(), which will return a
      %G_IO_ERROR_WOULD_BLOCK error rather than blocking.
      Returns:
      %TRUE if @stream is readable, %FALSE if not. If an error has occurred on @stream, this will result in g_pollable_input_stream_is_readable() returning %TRUE, and the next attempt to read will return the error.
    • readNonblocking

      public long readNonblocking(@Nonnull Pointer buffer, long count, @Nullable Cancellable cancellable) throws AllocationError
      Attempts to read up to @count bytes from @stream into @buffer, as
      with g_input_stream_read(). If @stream is not currently readable,
      this will immediately return %G_IO_ERROR_WOULD_BLOCK, and you can
      use g_pollable_input_stream_create_source() to create a #GSource
      that will be triggered when @stream is readable.

      Note that since this method never blocks, you cannot actually
      use @cancellable to cancel it. However, it will return an error
      if @cancellable has already been cancelled when you call, which
      may happen if you call this method after a source triggers due
      to having been cancelled.
      Parameters:
      buffer - a buffer to read data into (which should be at least @count bytes long).
      count - the number of bytes you want to read
      cancellable - a #GCancellable, or %NULL
      Returns:
      the number of bytes read, or -1 on error (including %G_IO_ERROR_WOULD_BLOCK).
      Throws:
      AllocationError
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()