Class StringInterner

java.lang.Object
com.biglybt.core.util.StringInterner

public class StringInterner extends Object
  • Field Details

    • DISABLE_INTERNING

      public static boolean DISABLE_INTERNING
      Can't be final as set true for a few specific apps
    • SCHEDULED_CLEANUP_INTERVAL

      private static final int SCHEDULED_CLEANUP_INTERVAL
      See Also:
    • TRACE_CLEANUP

      private static final boolean TRACE_CLEANUP
      See Also:
    • TRACE_MULTIHITS

      private static final boolean TRACE_MULTIHITS
      See Also:
    • IMMEDIATE_CLEANUP_TRIGGER

      private static final int IMMEDIATE_CLEANUP_TRIGGER
      See Also:
    • IMMEDIATE_CLEANUP_GOAL

      private static final int IMMEDIATE_CLEANUP_GOAL
      See Also:
    • SCHEDULED_CLEANUP_TRIGGER

      private static final int SCHEDULED_CLEANUP_TRIGGER
      See Also:
    • SCHEDULED_CLEANUP_GOAL

      private static final int SCHEDULED_CLEANUP_GOAL
      See Also:
    • SCHEDULED_AGING_THRESHOLD

      private static final int SCHEDULED_AGING_THRESHOLD
      See Also:
    • managedInterningSet

      private static final LightHashSet managedInterningSet
    • managedSetLock

      static final ReadWriteLock managedSetLock
    • managedRefQueue

      private static final ReferenceQueue managedRefQueue
    • COMMON_KEYS

      private static final String[] COMMON_KEYS
    • savingsComp

      private static final Comparator savingsComp
    • TRACK_FILE_KEYS

      private static final boolean TRACK_FILE_KEYS
    • file_key_ref_queue

      private static final ReferenceQueue<StringInterner.FileKey> file_key_ref_queue
    • file_key_map

      private static final Map<WeakReference<StringInterner.FileKey>,String> file_key_map
  • Constructor Details

    • StringInterner

      public StringInterner()
  • Method Details

    • intern

      public static String intern(String toIntern)
    • internURL

      public static URL internURL(URL toIntern)
      This is based on File.hashCode() and File.equals(), which can return different values for different representations of the same paths. Thus internFile should be used with canonized Files exclusively
    • sanitize

      private static void sanitize(boolean scheduled)