# Package net.i2p.util

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

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  Clock.ClockUpdateListener |
  EepGet.StatusListener |
  EventDispatcher | Event dispatching interface.
  I2PProperties.I2PPropertyCallback |
  I2PThread.OOMEventListener |
  SimpleTimer.TimedEvent | Simple interface for events to be queued up and notified on expiration

- Class Summary
  Class | Description
  --- | ---
  Addresses | Get the local addresses
  BufferedRandomSource | Deprecated Unused! See FortunaRandomSource
  ByteCache | Cache the objects frequently used to reduce memory churn.
  CachingByteArrayOutputStream | Deprecated unused
  Clock | Alternate location for determining the time which takes into account an offset.
  ConcurrentHashSet<E> | Implement on top of a ConcurrentHashMap with a dummy value.
  ConvertToHash | Convert any kind of destination String to a hash Supported: Base64 dest Base64 dest.i2p Base64 Hash Base32 Hash Base32 desthash.b32.i2p example.i2p
  Copy | Usage: Copy from to
  DecayingBloomFilter | Series of bloom filters which decay over time, allowing their continual use for time sensitive data.
  DecayingHashSet | Double buffered hash set.
  Delete | Usage: Delete name
  EepGet | EepGet [-p 127.0.0.1:4444] [-n #retries] [-o outputFile] [-m markSize lineLen] url Bug: a malformed url http://example.i2p (no trailing '/') fails cryptically
  EepGetScheduler | Deprecated unused a webapp version would be nice though
  EepHead | This is a quick hack to get a working EepHead, primarily for the following usage:
  EepPost | Deprecated unused
  EventDispatcherImpl | An implementation of the EventDispatcher interface.
  Exec | Usage: Exec dir command [args ...]
  Executor |
  FileUtil | General helper methods for messing with files These are static methods that do NOT convert arguments to absolute paths for a particular context and directtory.
  FortunaRandomSource | Wrapper around GNU-Crypto's Fortuna PRNG.
  HexDump | Hexdump class (well, it's actually a namespace with some functions, but let's stick with java terminology :-).
  HTTPSendData | Deprecated unused
  I2PAppThread | 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.
  I2PProperties | This class contains a number of properties ((key,value)-pairs).
  I2PThread | In case its useful later...
  InternalServerSocket | A simple in-JVM ServerSocket using Piped Streams.
  InternalSocket | A simple in-JVM Socket using Piped Streams.
  KeyRing | simple
  Log | Wrapper class for whatever logging system I2P uses.
  LogConsoleBuffer | Offer a glimpse into the last few console messages generated
  LogLimit | Defines the log limit for a particular set of logs
  LogManager | Manages the logging system, loading (and reloading) the configuration file, coordinating the log limits, and storing the set of log records pending.
  LogRecord | Frisbee
  LogRecordFormatter | Render a log record according to the log manager's settings
  LogWriter | Log writer thread that pulls log records from the LogManager, writes them to the current logfile, and rotates the logs as necessary.
  LookaheadInputStream | Simple lookahead buffer to keep the last K bytes in reserve, configured to easily be reused.
  NativeBigInteger | 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.
  ObjectCounter<K> | Count things.
  OrderedProperties | Properties map that has its keySet ordered consistently (via the key's lexicographical ordering).
  PartialEepGet | 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 Useful for checking .sud versions
  PooledRandomSource | Deprecated Unused! See FortunaRandomSource
  RandomSource | Singleton for whatever PRNG i2p uses.
  ResettableGZIPInputStream | GZIP implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterInputStream implementations.
  ResettableGZIPOutputStream | GZIP implementation per RFC 1952, reusing java's standard CRC32 and Deflater implementations.
  ReusableGZIPInputStream | Provide a cache of reusable GZIP streams, each handling up to 32KB without expansion.
  ReusableGZIPOutputStream | Provide a cache of reusable GZIP streams, each handling up to 32KB without expansion.
  SecureDirectory | Same as File but sets the file mode after mkdir() so it can be read and written by the owner only (i.e.
  SecureFile | Same as SecureDirectory but sets the file mode after createNewFile() and createTempFile() also.
  SecureFileOutputStream | Same as FileOutputStream but sets the file mode so it can only be read and written by the owner only (i.e.
  ShellCommand | Passes a command to the OS shell for execution and manages the input and output.
  SimpleByteCache | Like ByteCache but works directly with byte arrays, not ByteArrays.
  SimpleScheduler | Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleStore |
  SimpleTimer | Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleTimer2 | Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleTimer2.TimedEvent | Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.
  SocketTimeout | This should be deprecated.
  SSLEepGet | HTTPS only, non-proxied only, no retries, no min and max size options, no timeout option Fails on 301 or 302 (doesn't follow redirect) Fails on bad certs (must have a valid cert chain) Self-signed certs or CAs not in the JVM key store must be loaded to be trusted.
  SSLEepGet.SSLState | An opaque class for the caller to pass to repeated instantiations of SSLEepGet.
  Translate | Translate strings efficiently.
  VersionComparator | Compares versions.

## Package net.i2p.util Description

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