Class TransientMortalCacheEntry

    • Field Detail

      • value

        protected java.lang.Object value
      • maxIdle

        protected long maxIdle
      • lastUsed

        protected long lastUsed
      • lifespan

        protected long lifespan
      • created

        protected long created
    • Constructor Detail

      • TransientMortalCacheEntry

        public TransientMortalCacheEntry​(java.lang.Object key,
                                         java.lang.Object value,
                                         long maxIdle,
                                         long lifespan,
                                         long currentTimeMillis)
      • TransientMortalCacheEntry

        public TransientMortalCacheEntry​(java.lang.Object key,
                                         java.lang.Object value,
                                         long maxIdle,
                                         long lifespan,
                                         long lastUsed,
                                         long created)
    • Method Detail

      • setLifespan

        public void setLifespan​(long lifespan)
      • setMaxIdle

        public void setMaxIdle​(long maxIdle)
      • getValue

        public java.lang.Object getValue()
        Description copied from interface: CacheEntry
        Retrieves the value of this entry
        Returns:
        the value of the entry
      • getLifespan

        public long getLifespan()
        Returns:
        retrieves the lifespan of this entry. -1 means an unlimited lifespan.
      • canExpire

        public final boolean canExpire()
        Returns:
        true if the entry can expire, false otherwise
      • canExpireMaxIdle

        public boolean canExpireMaxIdle()
        Returns:
        true if this entry can expire via max idle, false otherwise
      • getCreated

        public long getCreated()
        Returns:
        timestamp when the entry was created
      • isExpired

        public boolean isExpired​(long now)
        Parameters:
        now - the current time as defined by System.currentTimeMillis() or TimeService.wallClockTime()
        Returns:
        true if the entry has expired; false otherwise
      • isExpired

        public boolean isExpired()
        Returns:
        true if the entry has expired; false otherwise
      • getExpiryTime

        public final long getExpiryTime()
        Description copied from interface: InternalCacheEntry
        Only used with entries that have a lifespan, this determines when an entry is due to expire.
        Returns:
        timestamp when the entry is due to expire, or -1 if it doesn't have a lifespan
      • toInternalCacheValue

        public InternalCacheValue toInternalCacheValue()
        Description copied from interface: InternalCacheEntry
        Creates a representation of this entry as an InternalCacheValue. The main purpose of this is to provide a representation that does not have a reference to the key. This is useful in situations where the key is already known or stored elsewhere, making serialization and deserialization more efficient.

        Note that this should not be used to optimize memory overhead, since the saving of an additional reference to a key (a single object reference) does not warrant the cost of constructing an InternalCacheValue. This only makes sense when marshalling is involved, since the cost of marshalling the key again can be sidestepped using an InternalCacheValue if the key is already known/marshalled.

        Returns:
        a new InternalCacheValue encapsulating this InternalCacheEntry's value and expiration information.
      • getLastUsed

        public long getLastUsed()
        Returns:
        timestamp when the entry was last used
      • touch

        public final void touch()
        Description copied from interface: InternalCacheEntry
        Updates access timestamps on this instance
      • touch

        public final void touch​(long currentTimeMillis)
        Description copied from interface: InternalCacheEntry
        Updates access timestamps on this instance to a specified time
        Parameters:
        currentTimeMillis - the current time as defined by System.currentTimeMillis() or TimeService.wallClockTime()
      • reincarnate

        public final void reincarnate()
        Description copied from interface: InternalCacheEntry
        "Reincarnates" an entry. Essentially, resets the 'created' timestamp of the entry to the current time.
      • reincarnate

        public void reincarnate​(long now)
        Description copied from interface: InternalCacheEntry
        "Reincarnates" an entry. Essentially, resets the 'created' timestamp of the entry to the current time.
        Parameters:
        now - the current time as defined by System.currentTimeMillis() or TimeService.wallClockTime()
      • getMaxIdle

        public long getMaxIdle()
        Returns:
        the maximum allowed time for which this entry can be idle, after which it is considered expired.
      • setValue

        public java.lang.Object setValue​(java.lang.Object value)
        Description copied from interface: CacheEntry
        Sets the value of the entry, returning the previous value
        Parameters:
        value - value to set
        Returns:
        previous value