Class AbstractSenderReceiverCommunication

    • Method Detail

      • init

        public final void init​(AttributeGroup requestAtg,
                               Aspect requestAspect,
                               AttributeGroup responseAtg,
                               Aspect responseAspect,
                               AbstractSenderReceiverCommunication.DataListener dataListener)
                        throws OneSubscriptionPerSendData
        Meldet einen Sender und eine Senke auf die übergebenen Parameter an, wenn alle vier Parameter gesetzt sind. Als Simulationsvariante wird die beim starten der Applikation gesetzt Variante benutzt.

        Sind die Parameter responseAtg und responseAspect null, wird keine Senke angemeldet sondern nur der Sender.

        Parameters:
        requestAtg - ATG für Anfrage (Anmeldung als Sender)
        requestAspect - Aspekt für Anfragen (Anmeldung für Sender)
        responseAtg - ATG für Antworten auf Anfragen (Anmeldung als Senke) oder null, wenn kein Senke angemeldet werden soll.
        responseAspect - Aspekt für Antworten auf Anfragen (Anmeldung als Senke) oder null, wenn kein Senke angemeldet werden soll.
        dataListener - Objekt, das Telegramme verarbeiten und diese dann aus dem Strom der Telegramme entfernen kann. Ist das Objekt null, werden die Telegramme nicht gefiltert und normal durch diese Klasse bearbeitet.
        Throws:
        OneSubscriptionPerSendData - Wenn bereits eine Senke für die gleichen Daten angemeldet wurde.
      • init

        public final void init​(AttributeGroup requestAtg,
                               Aspect requestAspect,
                               AttributeGroup responseAtg,
                               Aspect responseAspect,
                               short simulationVariant,
                               AbstractSenderReceiverCommunication.DataListener dataListener)
                        throws OneSubscriptionPerSendData
        Meldet einen Sender und eine Senke auf die übergebenen Parameter an, wenn alle vier Parameter gesetzt sind. Die zu nutzende Simulationsvariante wird übergeben.

        Sind die Parameter responseAtg und responseAspect null, wird keine Senke angemeldet sondern nur der Sender.

        Parameters:
        requestAtg - ATG für Anfrage (Anmeldung als Sender)
        requestAspect - Aspekt für Anfragen (Anmeldung für Sender)
        responseAtg - ATG für Antworten auf Anfragen (Anmeldung als Senke) oder null, wenn kein Senke angemeldet werden soll.
        responseAspect - Aspekt für Antworten auf Anfragen (Anmeldung als Senke) oder null, wenn kein Senke angemeldet werden soll.
        simulationVariant - Simulationsvariante, die zur Anmeldung benutzt werden soll
        dataListener - Objekt, das Telegramme verarbeiten und diese dann aus dem Strom der Telegramme entfernen kann. Ist das Objekt null, werden die Telegramme nicht gefiltert und normal durch diese Klasse bearbeitet.
        Throws:
        OneSubscriptionPerSendData - Wenn bereits eine Senke für die gleichen Daten angemeldet wurde.
      • sendData

        public int sendData​(java.lang.String messageType,
                            byte[] data)
                     throws SendSubscriptionNotConfirmed,
                            java.lang.IllegalStateException
        Description copied from interface: SenderReceiverCommunication
        Verschickt eine Anfrage vom angegeben Typ und mit dem in einem Byte Array angegebenen serialisierten Inhalt, die Methode gibt ohne zu blockieren eine neue Anfragenummer zurück. Die Antwort kann mit SenderReceiverCommunication.waitForReply(int) abgerufen werden.
        Specified by:
        sendData in interface SenderReceiverCommunication
        Parameters:
        messageType - Anfragetyp
        data - Daten Serialiserte Anfragedaten.
        Returns:
        Index, der benötigt wird um die Antwort auf eine Anfrage zu abzufragen.
        Throws:
        SendSubscriptionNotConfirmed - Wenn noch keine positive Sendesteuerung vom Datenverteiler für die zu versendenden Daten vorliegt
        java.lang.IllegalStateException - Die Daten können versendet werden, aber die Antwort kann nicht empfangen werden, da für den empfang der Daten nicht die benötigten Rechte vorhanden sind. Aus diesem Grund werden die Daten nicht verschickt.
      • sendData

        public final void sendData​(java.lang.String messageType,
                                   byte[] data,
                                   int queryIndex)
                            throws SendSubscriptionNotConfirmed,
                                   java.lang.IllegalStateException
        Description copied from interface: SenderReceiverCommunication
        Verschickt eine Antwort vom angegeben Typ zu einer Anfrage.
        Specified by:
        sendData in interface SenderReceiverCommunication
        Parameters:
        messageType - Antworttyp
        data - Daten Serialiserte Anfragedaten.
        queryIndex - Index der zugehörigen Anfrage
        Throws:
        SendSubscriptionNotConfirmed - Wenn noch keine positive Sendesteuerung vom Datenverteiler für die zu versendenden Daten vorliegt
        java.lang.IllegalStateException - Die Daten können versendet werden, aber die Antwort kann nicht empfangen werden, da für den empfang der Daten nicht die benötigten Rechte vorhanden sind. Aus diesem Grund werden die Daten nicht verschickt.
      • handleReply

        public final void handleReply​(Data data)
      • setMutableCollectionChangeListener

        public void setMutableCollectionChangeListener​(MutableCollectionChangeListener notifyingMutableCollectionChangeListener)
        Setzt den Listener zur Verarbeitung und Verteilung von Aktualisierungsnachrichten bzgl. Änderungen der Elemente von dynamischen Mengen bzw. dynamischen Typen. Defaultimplementierung erzeugt eine Exception.
        Specified by:
        setMutableCollectionChangeListener in interface SenderReceiverCommunication
        Parameters:
        notifyingMutableCollectionChangeListener -
        Throws:
        java.lang.UnsupportedOperationException - Wenn die Methode nicht überschrieben wurde.