Package net.i2p.util


package net.i2p.util

These classes define the several useful utilities used throughout the router and applications.

  • Class
    Description
    Methods to get the local addresses, and other IP utilities
     
    A small, fast Set with a maximum size, backed by a fixed-size array.
     
    A Westwood bandwidth estimator
    OutputStream to InputStream adapter.
    Cache the objects frequently used to reduce memory churn.
    Alternate location for determining the time which takes into account an offset.
     
    Simple command line access to various utilities.
    Implement on top of a ConcurrentHashMap with a dummy value.
    Convert any kind of destination String to a hash Supported: Base64 dest Base64 dest.i2p Base64 Hash Base64 Hash.i2p Base32 Hash Base32 desthash.b32.i2p example.i2p
    Simple implemetation of DNS over HTTPS.
     
    EepGet [-p 127.0.0.1:4444] [-n #retries] [-o outputFile] [-m markSize lineLen] url
     
    Callback interface
    This is a quick hack to get a working EepHead, primarily for the following usage:
    Event dispatching interface.
    An implementation of the EventDispatcher interface.
    Deprecated - used only by SimpleTimer
    File-based log writer thread that pulls log records from the LogManager, writes them to the current logfile, and rotates the logs as necessary.
    A FileFilter that accepts regular files with a suffix and optionally a prefix, case-insensitive.
    General helper methods for messing with files These are static methods that do NOT convert arguments to absolute paths for a particular context and directory.
    Wrapper around GNU-Crypto's Fortuna PRNG.
    Hexdump class (well, it's actually a namespace with some functions, but let's stick with java terminology :-).
    Like I2PThread but with per-thread OOM listeners, rather than a static router-wide listener list, so that an OOM in an app won't call the router listener to shutdown the whole router.
    This class contains a number of properties ((key,value)-pairs).
     
    Loads trusted ASCII certs from ~/.i2p/certificates/ and $I2P/certificates/.
    Preferred over Thread for all router uses.
     
    A simple in-JVM ServerSocket using Piped Streams.
    A simple in-JVM Socket using Piped Streams.
    simple
    A LinkedHashMap with a maximum size, for use as an LRU cache.
    Wrapper class for whatever logging system I2P uses.
    Offer a glimpse into the last few console messages generated.
    Defines the log limit for a particular set of logs
    Manages the logging system, loading (and reloading) the configuration file, coordinating the log limits, and storing the set of log records pending.
    Keep track of a log entry, unformatted.
    Render a log record according to the log manager's settings
    Log writer thread that pulls log records from the LogManager and writes them to the log.
    Simple lookahead buffer to keep the last K bytes in reserve, configured to easily be reused.
    BigInteger that takes advantage of the jbigi library for the modPow operation, which accounts for a massive segment of the processing cost of asymmetric crypto.
    Count things.
    Properties map that has its keySet ordered consistently (via the key's lexicographical ordering).
    Fetch exactly the first 'size' bytes into a stream Anything less or more will throw an IOException No retries, no min and max size options, no timeout option If the server does not return a Content-Length header of the correct size, the fetch will fail.
    Manage both plaintext and salted/hashed password storage in router.config.
    Map services to internal or external application ports for this context.
    Singleton for whatever PRNG i2p uses.
    GZIP implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterInputStream implementations.
    GZIP implementation per RFC 1952, reusing java's standard CRC32 and Deflater implementations.
    Provide a cache of reusable GZIP unzipper streams.
    Provide a cache of reusable GZIP streams, each handling up to 40 KB output without expansion.
    Moved from NewsFetcher
    Same as File but sets the file mode after mkdir() so it can be read and written by the owner only (i.e.
    Same as SecureDirectory but sets the file mode after createNewFile() and createTempFile() also.
    Same as FileOutputStream but sets the file mode so it can only be read and written by the owner only (i.e.
    Passes a command to the OS shell for execution and manages the input and output.
    Like ByteCache but works directly with byte arrays, not ByteArrays.
    Deprecated.
    in 0.9.20, use SimpleTimer2 instead
    Deprecated - used only by SimpleTimer
    Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
    Simple interface for events to be queued up and notified on expiration
    Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
    Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.
    Wrapper around SipHashInline with constant per-JVM keys
    Implements one or two timers; one for inactivity, that is reset by resetTimer(), and optionally, a total time since instantiation, that is configured by setTotalTimeoutPeriod().
    HTTPS only, no retries, no min and max size options, no timeout option As of 0.9.45, supports redirect to https (redirect to http will still fail).
    Not all may be supported.
    An opaque class for the caller to pass to repeated instantiations of SSLEepGet.
    Methods to find out what system we are running on
    Adds setReadTimeout().
    Helper for TimeoutPipedInputStream.
    Translate strings efficiently.
    Translate.
    An object cache which is safe to use by multiple threads without blocking.
    Something that creates objects of the type cached by this cache
    A queue of messages, where each has an ID number.
     
    Efficient implementation of a SortedSet stored in a fixed-size array.
    Compares versions.
    Deprecated.
    scheduled for removal late 2017, not for external use