Class AbstractEndPoint

    • Field Detail

      • DEBUG

        protected boolean DEBUG
        Debug mode, very verbose output.
      • serverSessionID

        protected final long serverSessionID
        The server session ID.
      • name

        protected final java.lang.String name
        The name of this end point.
      • worker

        protected final Worker worker
        The worker of the Editor.
      • server

        protected final ServerShell server
        The main server instance.
      • sessionInfo

        protected final SessionInfo sessionInfo
        The SessionInfo.
      • threadGroup

        protected final java.lang.ThreadGroup threadGroup
        The thread group for the end point.
      • endPointType

        protected final IEndPoint.Type endPointType
        The end-point type.
      • endPointPropertyManager

        protected final PropMgr endPointPropertyManager
        The property endPointPropertyManager.
      • root

        protected PropCnr root
        The root container property of the end point.
    • Constructor Detail

      • AbstractEndPoint

        public AbstractEndPoint​(IEndPoint.Type endPointType,
                                java.lang.String name,
                                long sessionID,
                                IWebSocketComm comm,
                                ServerShell server,
                                java.lang.ThreadGroup serverThreadGroup,
                                java.util.HashMap<java.lang.String,​java.lang.String> classNameMap,
                                java.lang.ClassLoader contextClassLoader)
                         throws java.io.IOException
        Creates a new EndPoint instance.
        Parameters:
        endPointType - End point type.
        name - Name of end point.
        sessionID - Session ID.
        comm - Communications interface to web sockets.
        server - The server instance.
        serverThreadGroup - The thread group.
        classNameMap - The class name map.
        contextClassLoader - The context class loader.
        Throws:
        java.io.IOException - For I/O errors.
    • Method Detail

      • getServerSessionID

        public final long getServerSessionID()
        Gets the Server Session ID.
        Specified by:
        getServerSessionID in interface IEndPoint
        Returns:
        The session ID.
      • getEndPointName

        public java.lang.String getEndPointName()
        Gets the end point name.
        Specified by:
        getEndPointName in interface IEndPoint
        Returns:
        A short descriptive end-point type name.
      • getHeartBeatInterval

        protected long getHeartBeatInterval()
        Gets the heart-beat interval time in milliseconds, called during start-up in the constructor.
        Returns:
        Interval in milliseconds, zero for none (default is DEFAULT_HEARTBEAT_INTERVAL, i.e. 20 seconds).
      • onSendHeartHeat

        protected void onSendHeartHeat()
        Called to perform sending of a heart-beat. Override if required. This method is called at regular intervals as specified by the getHeartBeatInterval() return value.
      • onSessionConnected

        protected void onSessionConnected()
        Called upon connect to enable initialization of e.g. the root property. This method is overridden by subclasses and the base EndPoint implementation does nothing.
      • getPropertyManager

        public final PropMgr getPropertyManager()
        Gets the property manager of the end point. The property manager for an end point is always of SERVER type.
        Returns:
        The singleton PropMgr instance.
      • getProperties

        public final PropCnr getProperties()
        Gets the end point properties, i.e. the root container.
        Returns:
        The root container.
      • getSessionInfo

        public final SessionInfo getSessionInfo()
        Gets the SessionInfo for this end point.
        Specified by:
        getSessionInfo in interface IEndPoint
        Returns:
        The SessionInfo instance.
      • dispose

        public boolean dispose()
        Disposes of the end point.
        Specified by:
        dispose in interface IEndPoint
        Returns:
        true if disposed, false if already disposed of.
      • onCommConnected

        public void onCommConnected​(IWebSocketComm comm)
        Called when the communication link is connected. The endpoint starts by sending a CREATE transaction of the endpoint root property container.
        Specified by:
        onCommConnected in interface WebSocketCommListener
        Parameters:
        comm - The WebSocket communication instance.
      • onCommData

        public void onCommData​(IWebSocketComm comm,
                               byte[] _data,
                               int offset,
                               int len)
        Called when the communication link has received binary data.
        Specified by:
        onCommData in interface WebSocketCommListener
        Parameters:
        comm - The WebSocket communication instance.
        _data - The data byte array.
        offset - Offset in buffer.
        len - Length of data.
      • onCommData

        public void onCommData​(IWebSocketComm comm,
                               java.lang.String data)
        Called when the communication link has received String data.
        Specified by:
        onCommData in interface WebSocketCommListener
        Parameters:
        comm - The WebSocket communication instance.
        data - The String data.
      • onCommHeartBeat

        public void onCommHeartBeat​(IWebSocketComm comm,
                                    long duration)
        Called when a heart-beat frame is received.
        Specified by:
        onCommHeartBeat in interface WebSocketCommListener
        Parameters:
        duration - Duration of the PING-PONG message exchange in milliseconds.
        comm - The WebSocket communication instance.
      • onCommTimeout

        public void onCommTimeout​(IWebSocketComm comm,
                                  boolean isReadTimeout)
        Called when the communication link has timed out on a read or write operation.
        Specified by:
        onCommTimeout in interface WebSocketCommListener
        Parameters:
        comm - The WebSocket communication instance.
        isReadTimeout - Flag indicating read timeout when true, false indicates write timeout.
      • onCommError

        public void onCommError​(IWebSocketComm comm,
                                java.lang.Throwable e)
        Called when the communication link is closed.
        Specified by:
        onCommError in interface WebSocketCommListener
        Parameters:
        comm - The WebSocket communication instance.
        e - The exception.
      • onCommClosed

        public void onCommClosed​(IWebSocketComm comm,
                                 int code,
                                 java.lang.String reason)
        Called when the communication link is closed.
        Specified by:
        onCommClosed in interface WebSocketCommListener
        Parameters:
        comm - The WebSocket communication instance.
        code - The reason code for closure.
        reason - The reason string explanation for closure.
      • onClientPropsCreated

        protected void onClientPropsCreated​(PropCnr root)
        Called when the root is created from a transaction from the client. Override to perform some additional processing such as adding server environment, etc.
      • processQueuedTransaction

        protected abstract boolean processQueuedTransaction​(int code,
                                                            ReadTransaction trans)
        This method must be implemented in all extending classes.
        Parameters:
        code - The transaction code.
        trans - The transaction.
        Returns:
        true if the transaction has been processed, false otherwise.
      • isConnected

        public final boolean isConnected()
        Checks if the communication link is connected.
        Specified by:
        isConnected in interface IRootPropTransactionSender
        Returns:
        true if the connection has been established, false if closed or if in progress of closing.
      • createTransaction

        public final SendTransaction createTransaction()
        Creates a Transaction using a Write Cache. This transaction is then used to write data into it. Be careful only to do it from a single thread as the Write Cache is not thread-safe!
        Specified by:
        createTransaction in interface ITransactionCreator
        Returns:
        The transaction with the WriteCache with parameters specified in the properties.
      • paramString

        protected java.lang.String paramString()
        Formats the value as a string to add to paramString.
        Returns:
        String format of the parameters.
      • toString

        public java.lang.String toString()
        Returns a string representation of this component and its values.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string representation of this property.
      • getClientContextMenuReference

        public java.lang.String getClientContextMenuReference​(UIContextMenu contextMenu)
        Gets the reference to use for a context menu. Override to process.
        Specified by:
        getClientContextMenuReference in interface IRootPropTransactionSender
        Parameters:
        contextMenu - The context menu.
        Returns:
        The reference to use, empty string for none (never null).