- java.lang.Object
-
- org.snmp4j.transport.AbstractTransportMapping<UdpAddress>
-
- org.snmp4j.transport.UdpTransportMapping
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,TransportMapping<UdpAddress>
- Direct Known Subclasses:
DefaultUdpTransportMapping
public abstract class UdpTransportMapping extends AbstractTransportMapping<UdpAddress>
TheUdpTransportMapping
is the abstract base class for UDP transport mappings.- Version:
- 3.0
- Author:
- Frank Fock
-
-
Field Summary
Fields Modifier and Type Field Description protected UdpAddress
udpAddress
-
Fields inherited from class org.snmp4j.transport.AbstractTransportMapping
asyncMsgProcessingSupported, listenWorkerTask, maxInboundMessageSize, suspendedAddresses, transportListener
-
-
Constructor Summary
Constructors Constructor Description UdpTransportMapping(UdpAddress udpAddress)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
close()
Closes the transport an releases all bound resources synchronously.UdpAddress
getAddress()
Returns the transport address that is configured for this transport mapping for sending and receiving messages.UdpAddress
getListenAddress()
Returns the address that represents the actual incoming address this transport mapping uses to listen for incoming packets.java.lang.Class<? extends Address>
getSupportedAddressClass()
Gets the primaryAddress
class that is supported by this transport mapping.abstract void
listen()
Listen for incoming messages.abstract void
sendMessage(UdpAddress address, byte[] message, TransportStateReference tmStateReference, long timeoutMillis, int maxRetries)
Sends a message to the supplied address using this transport.-
Methods inherited from class org.snmp4j.transport.AbstractTransportMapping
addTransportListener, fireProcessMessage, getListenerWorkerTask, getMaxInboundMessageSize, getPriority, getThreadName, handleDroppedMessageToSend, isAsyncMsgProcessingSupported, isListening, removeAllTransportListeners, removeTransportListener, resumeAddress, setAsyncMsgProcessingSupported, setPriority, setThreadName, suspendAddress
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.snmp4j.TransportMapping
getSupportedAddressClasses, getSupportedTransportType, isAddressSupported, isAddressSupported
-
-
-
-
Field Detail
-
udpAddress
protected UdpAddress udpAddress
-
-
Constructor Detail
-
UdpTransportMapping
public UdpTransportMapping(UdpAddress udpAddress)
-
-
Method Detail
-
getSupportedAddressClass
public java.lang.Class<? extends Address> getSupportedAddressClass()
Description copied from interface:TransportMapping
Gets the primaryAddress
class that is supported by this transport mapping.- Specified by:
getSupportedAddressClass
in interfaceTransportMapping<UdpAddress>
- Specified by:
getSupportedAddressClass
in classAbstractTransportMapping<UdpAddress>
- Returns:
- a subclass of
Address
.
-
getAddress
public UdpAddress getAddress()
Returns the transport address that is configured for this transport mapping for sending and receiving messages.- Returns:
- the
Address
used by this transport mapping. The returned instance must not be modified!
-
getListenAddress
public UdpAddress getListenAddress()
Description copied from interface:TransportMapping
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.
-
listen
public abstract void listen() throws java.io.IOException
Description copied from interface:TransportMapping
Listen for incoming messages. For connection oriented transports, this method needs to be called beforeTransportMapping.sendMessage(A, byte[], org.snmp4j.TransportStateReference, long, int)
is called for the first time.- Specified by:
listen
in interfaceTransportMapping<UdpAddress>
- Specified by:
listen
in classAbstractTransportMapping<UdpAddress>
- Throws:
java.io.IOException
- if an IO operation exception occurs while starting the listener.
-
close
public abstract void close() throws java.io.IOException
Description copied from interface:TransportMapping
Closes the transport an releases all bound resources synchronously.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfaceTransportMapping<UdpAddress>
- Specified by:
close
in classAbstractTransportMapping<UdpAddress>
- Throws:
java.io.IOException
- if any IO operation for the close fails.
-
sendMessage
public abstract void sendMessage(UdpAddress address, byte[] message, TransportStateReference tmStateReference, long timeoutMillis, int maxRetries) throws java.io.IOException
Description copied from class:AbstractTransportMapping
Sends a message to the supplied address using this transport. If the target address has been suspended, then instead actually sending the message on the wire, the methodAbstractTransportMapping.handleDroppedMessageToSend(Address, byte[], TransportStateReference, long, int)
will be called. To stop suspending of a target address, callAbstractTransportMapping.resumeAddress(Address)
for that address.- Specified by:
sendMessage
in interfaceTransportMapping<UdpAddress>
- Specified by:
sendMessage
in classAbstractTransportMapping<UdpAddress>
- Parameters:
address
- anAddress
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.
-
-