-
- Type Parameters:
A- anAddressclass that is the super class for the addresses supported by this transport mapping.
- All Superinterfaces:
java.lang.AutoCloseable,java.io.Closeable
- All Known Subinterfaces:
ConnectionOrientedTransportMapping<A>
- All Known Implementing Classes:
AbstractTransportMapping,DefaultTcpTransportMapping,DefaultUdpTransportMapping,DTLSTM,DummyTransport,DummyTransport.DummyTransportResponder,TcpTransportMapping,TLSTM,UdpTransportMapping
public interface TransportMapping<A extends Address> extends java.io.CloseableTheTransportMappingdefines the common interface for SNMP transport mappings. A transport mapping can only support a single transport protocol.- Version:
- 3.2.0
- Author:
- Frank Fock
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidaddTransportListener(TransportListener transportListener)Adds a transport listener to the transport.voidclose()Closes the transport an releases all bound resources synchronously.AgetListenAddress()Returns the address that represents the actual incoming address this transport mapping uses to listen for incoming packets.intgetMaxInboundMessageSize()Gets the maximum length of an incoming message that can be successfully processed by this transport mapping implementation.java.lang.Class<? extends Address>getSupportedAddressClass()Gets the primaryAddressclass that is supported by this transport mapping.default java.util.Set<java.lang.Class<? extends Address>>getSupportedAddressClasses()Return allAddressclasses supported by this transport mapping.default TransportTypegetSupportedTransportType()Gets theTransportTypethisTransportMappingsupports.default booleanisAddressSupported(Address addressType)Checks if the provided address can be used with this transport mapping.default booleanisAddressSupported(Address addressType, boolean exactMatch)Checks if the provided address can be used with this transport mapping.booleanisListening()Returnstrueif the transport mapping is listening for incoming messages.voidlisten()Listen for incoming messages.voidremoveTransportListener(TransportListener transportListener)Removes a transport listener.voidsendMessage(A address, byte[] message, TransportStateReference tmStateReference, long timeoutMillis, int maxRetries)Sends a message to the supplied address using this transport.
-
-
-
Method Detail
-
getSupportedAddressClass
java.lang.Class<? extends Address> getSupportedAddressClass()
Gets the primaryAddressclass that is supported by this transport mapping.- Returns:
- a subclass of
Address.
-
getSupportedAddressClasses
default java.util.Set<java.lang.Class<? extends Address>> getSupportedAddressClasses()
Return allAddressclasses supported by this transport mapping. For example, ifDtlsAddressis supported as primary address class this will also returnUdpAddressas 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- anAddressinstance representing a target address.- Returns:
trueif the specified address can be used as target address with thisTransportMapping.- Since:
- 3.1.0
-
isAddressSupported
default boolean isAddressSupported(Address addressType, boolean exactMatch)
Checks if the provided address can be used with this transport mapping.- Parameters:
addressType- anAddressinstance representing a target address.exactMatch- iftruethis method returnstrueonly if the given addressType's class equals the address class returned bygetSupportedAddressClass().- Returns:
trueif the specified address can be used as target address with thisTransportMapping.- Since:
- 3.2.1
-
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
nullthis 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- anAddressinstance 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- aTransportListenerinstance.- Since:
- 1.6
-
removeTransportListener
void removeTransportListener(TransportListener transportListener)
Removes a transport listener. Incoming messages will no longer be propagated to the suppliedTransportListener.- Parameters:
transportListener- aTransportListenerinstance.- Since:
- 1.6
-
close
void close() throws java.io.IOExceptionCloses the transport an releases all bound resources synchronously.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException- if any IO operation for the close fails.
-
listen
void listen() throws java.io.IOExceptionListen for incoming messages. For connection oriented transports, this method needs to be called beforesendMessage(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()
Returnstrueif 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:
trueif 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.
-
getSupportedTransportType
default TransportType getSupportedTransportType()
Gets theTransportTypethisTransportMappingsupports.- Returns:
TransportType.receiverif command responder applications are supported andTransportType.senderif command generator and notification generator applications are supported andTransportType.anyif any type of applications are supported with this instance.- Since:
- 3.2.0
-
-