Module org.snmp4j
Package org.snmp4j

Interface TransportMapping<A extends Address>

    • Method Detail

      • getSupportedAddressClass

        java.lang.Class<? extends Address> getSupportedAddressClass()
        Gets the primary Address class that is supported by this transport mapping.
        Returns:
        a subclass of Address.
      • getSupportedAddressClasses

        default java.util.Set<java.lang.Class<? extends Address>> getSupportedAddressClasses()
        Return all Address classes supported by this transport mapping. For example, if DtlsAddress is supported as primary address class this will also return UdpAddress as secondary supported address class.
        Returns:
        a set of address classes with at least one element (see getSupportedAddressClass().
      • isAddressSupported

        default boolean isAddressSupported​(Address addressType)
        Checks if the provided address can be used with this transport mapping.
        Parameters:
        addressType - an Address instance representing a target address.
        Returns:
        true if the specified address can be used as target address with this TransportMapping.
        Since:
        3.1.0
      • getListenAddress

        A getListenAddress()
        Returns the address that represents the actual incoming address this transport mapping uses to listen for incoming packets.
        Returns:
        the address for incoming packets or null this transport mapping is not configured to listen for incoming packets.
        Since:
        1.6
      • sendMessage

        void sendMessage​(A address,
                         byte[] message,
                         TransportStateReference tmStateReference,
                         long timeoutMillis,
                         int maxRetries)
                  throws java.io.IOException
        Sends a message to the supplied address using this transport.
        Parameters:
        address - an Address instance denoting the target address.
        message - the whole message as an array of bytes.
        tmStateReference - the (optional) transport model state reference as defined by RFC 5590 section 6.1.
        timeoutMillis - maximum number of milli seconds the connection creation might take (if connection based).
        maxRetries - maximum retries during connection creation.
        Throws:
        java.io.IOException - if any underlying IO operation fails.
      • addTransportListener

        void addTransportListener​(TransportListener transportListener)
        Adds a transport listener to the transport. Normally, at least one transport listener needs to be added to process incoming messages.
        Parameters:
        transportListener - a TransportListener instance.
        Since:
        1.6
      • removeTransportListener

        void removeTransportListener​(TransportListener transportListener)
        Removes a transport listener. Incoming messages will no longer be propagated to the supplied TransportListener.
        Parameters:
        transportListener - a TransportListener instance.
        Since:
        1.6
      • close

        void close()
            throws java.io.IOException
        Closes the transport an releases all bound resources synchronously.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException - if any IO operation for the close fails.
      • listen

        void listen()
             throws java.io.IOException
        Listen for incoming messages. For connection oriented transports, this method needs to be called before sendMessage(A, byte[], org.snmp4j.TransportStateReference, long, int) is called for the first time.
        Throws:
        java.io.IOException - if an IO operation exception occurs while starting the listener.
      • isListening

        boolean isListening()
        Returns true if the transport mapping is listening for incoming messages. For connection oriented transport mappings this is a prerequisite to be able to send SNMP messages. For connectionless transport mappings it is a prerequisite to be able to receive responses.
        Returns:
        true if this transport mapping is listening for messages.
        Since:
        1.1
      • getMaxInboundMessageSize

        int getMaxInboundMessageSize()
        Gets the maximum length of an incoming message that can be successfully processed by this transport mapping implementation.
        Returns:
        an integer > 484.