Interface DeviceConnect
-
- All Superinterfaces:
Behaviour
,HandlerBehaviour
- All Known Subinterfaces:
DeviceHandshaker
@Beta public interface DeviceConnect extends HandlerBehaviour
Abstraction of handler behaviour used to set-up and tear-down connections with a device. A connection is intended as the presence of state (e.g. a transport session) required to carry messages between this node and the device.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
connect()
Connects to the device, for example by opening the transport session that will be later used to send control messages.void
disconnect()
Disconnects from the device, for example closing any transport session previously opened.boolean
hasConnection()
Returns true if a connection to the device exists, false otherwise.-
Methods inherited from interface org.onosproject.net.driver.HandlerBehaviour
handler, setHandler
-
-
-
-
Method Detail
-
connect
boolean connect() throws IllegalStateException
Connects to the device, for example by opening the transport session that will be later used to send control messages. Returns true if the connection was created successfully, false otherwise.The implementation should trigger without blocking any necessary handshake with the device to initialize the connection over the network, eventually generating a
DeviceAgentEvent.Type.CHANNEL_OPEN
event when ready.When calling this method while a connection to the device already exists, the behavior is not defined. For example, some implementations might require to first call
disconnect()
, while other might behave as a no-op.- Returns:
- true if a connection was created successfully, false otherwise
- Throws:
IllegalStateException
- if a connection already exists and the implementation requires to calldisconnect()
first.
-
hasConnection
boolean hasConnection()
Returns true if a connection to the device exists, false otherwise. This method is NOT expected to send any message over the network to check for device reachability, but rather it should only give an indication if any internal connection state exists for the device. As such, it should NOT block execution.In general, when called after
connect()
it should always return true, while it is expected to always return false after callingdisconnect()
or ifconnect()
was never called.- Returns:
- true if the connection is open, false otherwise
-
disconnect
void disconnect()
Disconnects from the device, for example closing any transport session previously opened.Calling multiple times this method while a connection to the device is already closed should result in a no-op.
If a connection to the device existed and it was open, the implementation is expected to generate a
DeviceAgentEvent.Type.CHANNEL_CLOSED
event.
-
-