Class PahoMqttV5TransportConnector

  • All Implemented Interfaces:
    de.iip_ecosphere.platform.transport.connectors.TransportConnector

    public class PahoMqttV5TransportConnector
    extends de.iip_ecosphere.platform.transport.connectors.basics.AbstractMqttTransportConnector
    A MQTT v5 connector based on Eclipse Paho. Requires TransportParameter.getApplicationId(). This implementation is potentially not thread-safe, i.e., it may require a sending queue.
    Author:
    Holger Eichelberger, SSE
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  PahoMqttV5TransportConnector.Callback
      The internal reception callback.
      • Nested classes/interfaces inherited from class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector

        de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector.AuthenticationConsumer
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private org.eclipse.paho.mqttv5.client.MqttAsyncClient client  
      static java.lang.String NAME  
      private int qos  
      private boolean tlsEnabled  
      • Fields inherited from interface de.iip_ecosphere.platform.transport.connectors.TransportConnector

        EMPTY_PARENT
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void asyncSend​(java.lang.String stream, java.lang.Object data)  
      void connect​(de.iip_ecosphere.platform.transport.connectors.TransportParameter params)  
      void disconnect()  
      java.lang.String enabledEncryption()  
      java.lang.String getName()  
      private void send​(java.lang.String stream, java.lang.Object data, boolean block)
      Sends data to stream.
      void setReceptionCallback​(java.lang.String stream, de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<?> callback)  
      java.lang.String supportedEncryption()  
      void syncSend​(java.lang.String stream, java.lang.Object data)  
      void unsubscribe​(java.lang.String stream, boolean delete)  
      private void waitForCompletion​(org.eclipse.paho.mqttv5.client.IMqttToken token)
      Waits for completion until the token is processed.
      • Methods inherited from class de.iip_ecosphere.platform.transport.connectors.basics.AbstractMqttTransportConnector

        composeNames, composeStreamName
      • Methods inherited from class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector

        applyAuthenticationKey, applyAuthenticationKey, applyIdentityToken, applyIdentityToken, createTlsContext, detachReceptionCallback, getActionTimeout, getApplicationId, getApplicationId, getCallback, getCloseAction, getSerializerProvider, getTransportParameter, isStreamKnown, notifyCallback, registerStream, serialize, setSerializerProvider, useTls
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • client

        private org.eclipse.paho.mqttv5.client.MqttAsyncClient client
      • tlsEnabled

        private boolean tlsEnabled
      • qos

        private int qos
    • Constructor Detail

      • PahoMqttV5TransportConnector

        public PahoMqttV5TransportConnector()
        Creates a connector instance.
    • Method Detail

      • connect

        public void connect​(de.iip_ecosphere.platform.transport.connectors.TransportParameter params)
                     throws java.io.IOException
        Specified by:
        connect in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        connect in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        java.io.IOException
      • setReceptionCallback

        public void setReceptionCallback​(java.lang.String stream,
                                         de.iip_ecosphere.platform.transport.connectors.ReceptionCallback<?> callback)
                                  throws java.io.IOException
        Specified by:
        setReceptionCallback in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        setReceptionCallback in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        java.io.IOException
      • unsubscribe

        public void unsubscribe​(java.lang.String stream,
                                boolean delete)
                         throws java.io.IOException
        Specified by:
        unsubscribe in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        unsubscribe in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        java.io.IOException
      • disconnect

        public void disconnect()
                        throws java.io.IOException
        Specified by:
        disconnect in interface de.iip_ecosphere.platform.transport.connectors.TransportConnector
        Overrides:
        disconnect in class de.iip_ecosphere.platform.transport.connectors.impl.AbstractTransportConnector
        Throws:
        java.io.IOException
      • asyncSend

        public void asyncSend​(java.lang.String stream,
                              java.lang.Object data)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • syncSend

        public void syncSend​(java.lang.String stream,
                             java.lang.Object data)
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • send

        private void send​(java.lang.String stream,
                          java.lang.Object data,
                          boolean block)
                   throws java.io.IOException
        Sends data to stream.
        Parameters:
        stream - the stream to send to
        data - the data to send
        block - shall this be a blocking or a non-blocking send operation
        Throws:
        java.io.IOException - in case that sending fails for some reason
      • waitForCompletion

        private void waitForCompletion​(org.eclipse.paho.mqttv5.client.IMqttToken token)
                                throws org.eclipse.paho.mqttv5.common.MqttException
        Waits for completion until the token is processed.
        Parameters:
        token - the token
        Throws:
        org.eclipse.paho.mqttv5.common.MqttException - in case that processing of the token fails
      • getName

        public java.lang.String getName()
      • supportedEncryption

        public java.lang.String supportedEncryption()
      • enabledEncryption

        public java.lang.String enabledEncryption()