Class MessageTrackerHubService

  • All Implemented Interfaces:
    ClientTransmissionHolder, HubService

    public class MessageTrackerHubService
    extends GuiHubService
    implements ClientTransmissionHolder
    GuiHubService subclass which additionally keeps track of which messages have been sent and received, and can provide a graphical display of these. The overhead in maintaining the GUI display can be significant if there is high volume of message traffic.
    Since:
    20 Nov 2008
    Author:
    Mark Taylor
    • Constructor Detail

      • MessageTrackerHubService

        public MessageTrackerHubService​(java.util.Random random)
        Constructs a hub service with default message tracker GUI expiry times.
        Parameters:
        random - random number generator
      • MessageTrackerHubService

        public MessageTrackerHubService​(java.util.Random random,
                                        int listRemoveDelay,
                                        int tableRemoveDelay,
                                        int tableMaxRows)
        Constructs a hub service with specified message tracker GUI expiry times. The delay times are times in milliseconds after message resolution before message representations expire and hence remove themselves from gui components.
        Parameters:
        random - random number generator
        listRemoveDelay - expiry delay for summary icons in client list display
        tableRemoveDelay - expiry delay for rows in message table display
        tableMaxRows - maximum number of rows in message table (beyond this limit resolved messages may be removed early)
    • Method Detail

      • createClient

        public HubClient createClient​(java.lang.String publicId,
                                      ProfileToken ptoken)
        Description copied from class: BasicHubService
        Factory method used to create all the client objects which will be used by this hub service.
        Overrides:
        createClient in class BasicHubService
        Parameters:
        publicId - client public ID
        ptoken - connection source
        Returns:
        hub client
      • createHubPanel

        public javax.swing.JComponent createHubPanel()
        Description copied from class: GuiHubService
        Creates a new component containing a display of the current hub internal state.
        Overrides:
        createHubPanel in class GuiHubService
        Returns:
        new hub viewer panel
      • getClientSelectionModel

        public javax.swing.ListSelectionModel getClientSelectionModel()
        Description copied from class: GuiHubService
        Returns the selection model corresponding to this service's client list model.
        Overrides:
        getClientSelectionModel in class GuiHubService
        Returns:
        list selection model for client selection
      • getTxListModel

        public javax.swing.ListModel getTxListModel​(Client client)
        Returns a ListModel representing the pending messages sent from a given client. Elements of the model are Transmission objects.
        Specified by:
        getTxListModel in interface ClientTransmissionHolder
        Parameters:
        client - client owned by this hub service
        Returns:
        transmission list model
      • getRxListModel

        public javax.swing.ListModel getRxListModel​(Client client)
        Returns a ListModel representing the pending messages received by a given client. Elements of the model are Transmission objects.
        Specified by:
        getRxListModel in interface ClientTransmissionHolder
        Parameters:
        client - client owned by this hub service
        Returns:
        transmission list model
      • addTransmission

        private void addTransmission​(Transmission trans)
        Registers a newly created transmission with internal data models as required.
        Parameters:
        trans - new transmission to track
      • getCallKey

        private static java.lang.Object getCallKey​(Client receiver,
                                                   java.lang.String msgId)
        Returns a key for use in the call map. Identifies a call/response mode transmission.
        Parameters:
        receiver - message receiver
        msgId - message ID