Class PeerForeignNetworkConnection.omq

    • Constructor Detail

      • omq

        protected omq()
    • Method Detail

      • getPercentDoneOfCurrentMessage

        public int getPercentDoneOfCurrentMessage()
        Description copied from interface: OutgoingMessageQueue
        Get the percentage of the current message that has already been sent out.
        Specified by:
        getPercentDoneOfCurrentMessage in interface OutgoingMessageQueue
        Returns:
        percentage complete (0-99), or -1 if no message is currently being sent
      • hasUrgentMessage

        public boolean hasUrgentMessage()
        Description copied from interface: OutgoingMessageQueue
        Whether or not an urgent message (one that needs an immediate send, i.e. a no-delay message) is queued.
        Specified by:
        hasUrgentMessage in interface OutgoingMessageQueue
        Returns:
        true if there's a message tagged for immediate write
      • addMessage

        public void addMessage​(Message message,
                               boolean manual_listener_notify)
        Description copied from interface: OutgoingMessageQueue
        Add a message to the message queue. NOTE: Allows for manual listener notification at some later time, using doListenerNotifications(), instead of notifying immediately from within this method. This is useful if you want to invoke listeners outside of some greater synchronised block to avoid deadlock.
        Specified by:
        addMessage in interface OutgoingMessageQueue
        Parameters:
        message - message to add
        manual_listener_notify - true for manual notification, false for automatic
      • removeMessagesOfType

        public void removeMessagesOfType​(Message[] message_types,
                                         boolean manual_listener_notify)
        Description copied from interface: OutgoingMessageQueue
        Remove all messages of the given types from the queue. NOTE: Allows for manual listener notification at some later time, using doListenerNotifications(), instead of notifying immediately from within this method. This is useful if you want to invoke listeners outside of some greater synchronised block to avoid deadlock.
        Specified by:
        removeMessagesOfType in interface OutgoingMessageQueue
        Parameters:
        message_types - type to remove
        manual_listener_notify - true for manual notification, false for automatic
      • removeMessage

        public boolean removeMessage​(Message message,
                                     boolean manual_listener_notify)
        Description copied from interface: OutgoingMessageQueue
        Remove a particular message from the queue. NOTE: Only the original message found in the queue will be destroyed upon removal, which may not necessarily be the one passed as the method parameter, as some messages override equals() (i.e. BTRequest messages) instead of using reference equality, and could be a completely different object, and would need to be destroyed manually. If the message does not override equals, then any such method will likely *not* be found and removed, as internal queued object was a new allocation on insertion. NOTE: Allows for manual listener notification at some later time, using doListenerNotifications(), instead of notifying immediately from within this method. This is useful if you want to invoke listeners outside of some greater synchronised block to avoid deadlock.
        Specified by:
        removeMessage in interface OutgoingMessageQueue
        Parameters:
        message - to remove
        manual_listener_notify - true for manual notification, false for automatic
        Returns:
        true if the message was removed, false otherwise
      • deliverToTransport

        public int[] deliverToTransport​(int max_bytes,
                                        boolean protocol_is_free,
                                        boolean manual_listener_notify)
                                 throws java.io.IOException
        Description copied from interface: OutgoingMessageQueue
        Deliver (write) message(s) data to the underlying transport. NOTE: Allows for manual listener notification at some later time, using doListenerNotifications(), instead of notifying immediately from within this method. This is useful if you want to invoke listeners outside of some greater synchronised block to avoid deadlock.
        Specified by:
        deliverToTransport in interface OutgoingMessageQueue
        Parameters:
        max_bytes - maximum number of bytes to deliver
        manual_listener_notify - true for manual notification, false for automatic
        Returns:
        number of bytes delivered as [data, protocol]
        Throws:
        java.io.IOException - on delivery error