Klasse AbstractTransport

java.lang.Object
org.freedesktop.dbus.connections.transports.AbstractTransport
Alle implementierten Schnittstellen:
Closeable, AutoCloseable
Bekannte direkte Unterklassen:
AbstractUnixTransport

public abstract class AbstractTransport extends Object implements Closeable
Base class for all transport types.
Seit:
v3.2.0 - 2019-02-08
Autor:
hypfvieh
  • Konstruktordetails

  • Methodendetails

    • writeMessage

      public void writeMessage(Message _msg) throws IOException
      Write a message to the underlying socket.
      Parameter:
      _msg - message to write
      Löst aus:
      IOException - on write error or if output was already closed or null
    • readMessage

      public Message readMessage() throws IOException, DBusException
      Read a message from the underlying socket.
      Gibt zurück:
      read message, maybe null
      Löst aus:
      IOException - when input already close or null
      DBusException - when message could not be converted to a DBus message
    • isConnected

      public boolean isConnected()
      Returns true if inputReader and outputWriter are not yet closed.
      Gibt zurück:
      boolean
    • hasFileDescriptorSupport

      protected abstract boolean hasFileDescriptorSupport()
      Method to indicate if passing of file descriptors is allowed.
      Gibt zurück:
      true to allow FD passing, false otherwise
    • connectImpl

      protected abstract SocketChannel connectImpl() throws IOException
      Abstract method implemented by concrete sub classes to establish a connection.
      Gibt zurück:
      socket channel connected to DBus server
      Löst aus:
      IOException - when connection fails
    • acceptImpl

      protected abstract SocketChannel acceptImpl() throws IOException
      Method to accept new incoming listening connections.
      This is the place where accept() is called on the server socket created by bindImpl().
      Therefore this method will block until a client is connected.
      Gibt zurück:
      newly connected client socket
      Löst aus:
      IOException - when connection fails
      Seit:
      5.0.0 - 2023-10-20
    • bindImpl

      protected abstract void bindImpl() throws IOException
      Method called to prepare listening for connections.
      This is usually the place where the ServerSocketChannel is created and bind() is called.
      Löst aus:
      IOException - when connection fails
      Seit:
      5.0.0 - 2023-10-20
    • closeTransport

      protected abstract void closeTransport() throws IOException
      Method which is called to close a transport.
      Should be used to close all sockets and/or serversockets.
      Löst aus:
      IOException - when something fails while closing transport
      Seit:
      5.0.0 - 2023-10-20
    • isBound

      protected abstract boolean isBound()
      Status of the server socket if this transport is configured to be a server connection.
      Must be false if bindImpl() was not called.
      Gibt zurück:
      boolean
      Seit:
      5.0.0 - 2023-10-20
    • connect

      public final SocketChannel connect() throws IOException
      Establish connection on created transport.

      This method can only be used for non-listening connections.
      Trying to use this with listening addresses will throw an InvalidBusAddressException.

      Gibt zurück:
      SocketChannel of the created connection
      Löst aus:
      IOException - if connection fails
    • isListening

      public final boolean isListening()
      True if this transport connection is a listening (server) connection.
      Gibt zurück:
      boolean
    • listen

      public final TransportConnection listen() throws IOException
      Start listening on created transport.

      This method can only be used for listening connections.
      Trying to use this with non-listening addresses will throw an InvalidBusAddressException.

      Will return the TransportConnection as soon as a client connects.
      Therefore this method should be called in a loop to accept multiple clients

      Gibt zurück:
      TransportConnection containing created SocketChannel and IMessageReader/IMessageWriter
      Löst aus:
      IOException - if connection fails
    • setPreConnectCallback

      public void setPreConnectCallback(Consumer<AbstractTransport> _run)
      Set a callback which will be called right before the connection will be established to the transport.
      Parameter:
      _run - runnable to execute, null if no callback should be executed
      Seit:
      4.2.0 - 2022-07-20
    • getAddress

      protected BusAddress getAddress()
      Returns the BusAddress used for this transport.
      Gibt zurück:
      BusAddress, never null
    • getLogger

      protected org.slf4j.Logger getLogger()
      Get the logger in subclasses.
      Gibt zurück:
      Logger, never null
    • getSaslConfig

      protected SaslConfig getSaslConfig()
      Returns the current configuration used for SASL authentication.
      Gibt zurück:
      SaslConfig, never null
    • getTransportConnection

      public TransportConnection getTransportConnection()
      Returns the current transport connection.
      Gibt zurück:
      TransportConnection, null if not connected yet
    • getMessageFactory

      public MessageFactory getMessageFactory()
      Currently configured message factory.
      Gibt zurück:
      factory
    • getTransportConfig

      public TransportConfig getTransportConfig()
    • isFileDescriptorSupported

      public boolean isFileDescriptorSupported()
    • toString

      public String toString()
      Setzt außer Kraft:
      toString in Klasse Object
    • close

      public final void close() throws IOException
      Angegeben von:
      close in Schnittstelle AutoCloseable
      Angegeben von:
      close in Schnittstelle Closeable
      Löst aus:
      IOException