Class SingletonInstance

  • All Implemented Interfaces:
    Lock

    public abstract class SingletonInstance
    extends Object
    implements Lock
    • Constructor Detail

      • SingletonInstance

        protected SingletonInstance​(long poll_ms)
    • Method Detail

      • createServerSocket

        public static SingletonInstance createServerSocket​(long poll_ms,
                                                           int portNumber)
        A user shall use ephemeral ports:
        • IANA suggests 49152 to 65535 as "dynamic and/or private ports".
        • Many GNU/Linux kernels use 32768 to 61000.
        • FreeBSD >= 4.6 uses the IANA port range.
        • FreeBSD < 4.6 and BSD use ports 1024 through 4999.
        • Microsoft Windows operating systems through Server 2003 use the range 1025 to 5000
        • Windows Vista, Windows 7, and Server 2008 use the IANA range.
        Parameters:
        pollPeriod -
        portNumber - to be used for this single instance server socket.
      • getPollPeriod

        public final long getPollPeriod()
      • getName

        public abstract String getName()
      • tryLock

        public boolean tryLock​(long maxwait)
                        throws RuntimeException
        Description copied from interface: Lock
        Blocking until the lock is acquired by this Thread or maxwait in ms is reached.
        Specified by:
        tryLock in interface Lock
        Parameters:
        maxwait - Maximum time in ms to wait to acquire the lock. If this value is zero, the call returns immediately either without being able to acquire the lock, or with acquiring the lock directly while ignoring any scheduling order.
        Returns:
        true if the lock has been acquired within maxwait, otherwise false
        Throws:
        RuntimeException
      • tryLockImpl

        protected abstract boolean tryLockImpl()
      • unlock

        public void unlock()
                    throws RuntimeException
        Description copied from interface: Lock
        Release the lock.
        Specified by:
        unlock in interface Lock
        Throws:
        RuntimeException - in case the lock is not acquired by this thread.
      • unlockImpl

        protected abstract boolean unlockImpl()
      • isLocked

        public boolean isLocked()
        Description copied from interface: Lock
        Query if locked
        Specified by:
        isLocked in interface Lock
      • infoPrefix

        protected String infoPrefix​(long currentMillis)
      • infoPrefix

        protected String infoPrefix()