From 601376561bd2a9a2b6dbaa844934a16ae6328f77 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Thu, 27 Aug 2015 14:36:19 +0000 Subject: [PATCH] add Closeable/Flushable interfaces --- .../java/src/net/i2p/addressbook/ConfigIterator.java | 3 ++- apps/i2psnark/java/src/org/klomp/snark/Storage.java | 3 ++- apps/sam/java/src/net/i2p/sam/SAMMessageSession.java | 3 ++- .../java/src/net/i2p/client/streaming/impl/PacketQueue.java | 3 ++- .../java/src/net/i2p/client/streaming/impl/PcapWriter.java | 4 +++- core/java/src/net/i2p/internal/I2CPMessageQueue.java | 4 +++- core/java/src/net/i2p/util/LogManager.java | 3 ++- core/java/src/net/metanotion/io/RandomAccessInterface.java | 3 ++- core/java/src/net/metanotion/io/block/BlockFile.java | 3 ++- core/java/src/net/metanotion/io/block/index/BSkipList.java | 3 ++- core/java/src/net/metanotion/util/skiplist/SkipLevels.java | 4 +++- core/java/src/net/metanotion/util/skiplist/SkipList.java | 3 ++- core/java/src/net/metanotion/util/skiplist/SkipSpan.java | 4 +++- .../i2p/router/networkdb/kademlia/PersistentDataStore.java | 3 ++- .../src/net/i2p/router/transport/ntcp/NTCPConnection.java | 3 ++- 15 files changed, 34 insertions(+), 15 deletions(-) diff --git a/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java b/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java index 8b01fb854b..30c21d19bf 100644 --- a/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java +++ b/apps/addressbook/java/src/net/i2p/addressbook/ConfigIterator.java @@ -22,6 +22,7 @@ package net.i2p.addressbook; import java.io.BufferedReader; +import java.io.Closeable; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -41,7 +42,7 @@ import java.util.NoSuchElementException; * * @since 0.8.7 */ -class ConfigIterator implements Iterator<Map.Entry<String, String>> { +class ConfigIterator implements Iterator<Map.Entry<String, String>>, Closeable { private BufferedReader input; private ConfigEntry next; diff --git a/apps/i2psnark/java/src/org/klomp/snark/Storage.java b/apps/i2psnark/java/src/org/klomp/snark/Storage.java index 682d6f700c..1a4b1fb4c8 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Storage.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Storage.java @@ -20,6 +20,7 @@ package org.klomp.snark; +import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -50,7 +51,7 @@ import net.i2p.util.SystemVersion; /** * Maintains pieces on disk. Can be used to store and retrieve pieces. */ -public class Storage +public class Storage implements Closeable { private final MetaInfo metainfo; private final List<TorrentFile> _torrentFiles; diff --git a/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java b/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java index db2450b011..e8e502da8b 100644 --- a/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java +++ b/apps/sam/java/src/net/i2p/sam/SAMMessageSession.java @@ -9,6 +9,7 @@ package net.i2p.sam; */ import java.io.ByteArrayInputStream; +import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.util.Properties; @@ -31,7 +32,7 @@ import net.i2p.util.Log; * * @author human */ -abstract class SAMMessageSession { +abstract class SAMMessageSession implements Closeable { protected final Log _log; private I2PSession session; diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java index 073ce3d15c..34ab439398 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java @@ -1,5 +1,6 @@ package net.i2p.client.streaming.impl; +import java.io.Closeable; import java.io.IOException; import java.util.Iterator; import java.util.Map; @@ -25,7 +26,7 @@ import net.i2p.util.SimpleTimer2; *<p> * MessageOutputStream -> ConnectionDataReceiver -> Connection -> PacketQueue -> I2PSession */ -class PacketQueue implements SendMessageStatusListener { +class PacketQueue implements SendMessageStatusListener, Closeable { private final I2PAppContext _context; private final Log _log; private final ByteCache _cache = ByteCache.getInstance(64, 36*1024); diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/PcapWriter.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/PcapWriter.java index 9a3c3e0be4..1c704f02e3 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/impl/PcapWriter.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/PcapWriter.java @@ -1,8 +1,10 @@ package net.i2p.client.streaming.impl; import java.io.BufferedOutputStream; +import java.io.Closeable; import java.io.File; import java.io.FileOutputStream; +import java.io.Flushable; import java.io.IOException; import java.io.OutputStream; @@ -41,7 +43,7 @@ import net.i2p.data.DataHelper; * * @since 0.9.4 */ -public class PcapWriter { +public class PcapWriter implements Closeable, Flushable { /** big-endian, see file format ref - 24 bytes */ private static final byte[] FILE_HEADER = { (byte) 0xa1, (byte) 0xb2, (byte) 0xc3, (byte) 0xd4, diff --git a/core/java/src/net/i2p/internal/I2CPMessageQueue.java b/core/java/src/net/i2p/internal/I2CPMessageQueue.java index eda2d8f957..76584255c2 100644 --- a/core/java/src/net/i2p/internal/I2CPMessageQueue.java +++ b/core/java/src/net/i2p/internal/I2CPMessageQueue.java @@ -1,5 +1,7 @@ package net.i2p.internal; +import java.io.Closeable; + import net.i2p.data.i2cp.I2CPMessage; /** @@ -15,7 +17,7 @@ import net.i2p.data.i2cp.I2CPMessage; * @author zzz * @since 0.8.3 */ -public abstract class I2CPMessageQueue { +public abstract class I2CPMessageQueue implements Closeable { /** * Send a message, nonblocking. diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java index 85d948c537..f2df0a8817 100644 --- a/core/java/src/net/i2p/util/LogManager.java +++ b/core/java/src/net/i2p/util/LogManager.java @@ -10,6 +10,7 @@ package net.i2p.util; */ import java.io.File; +import java.io.Flushable; import java.io.IOException; import java.text.DateFormat; import java.text.DecimalFormat; @@ -37,7 +38,7 @@ import net.i2p.data.DataHelper; * writes them where appropriate. * */ -public class LogManager { +public class LogManager implements Flushable { public final static String CONFIG_LOCATION_PROP = "loggerConfigLocation"; public final static String FILENAME_OVERRIDE_PROP = "loggerFilenameOverride"; public final static String CONFIG_LOCATION_DEFAULT = "logger.config"; diff --git a/core/java/src/net/metanotion/io/RandomAccessInterface.java b/core/java/src/net/metanotion/io/RandomAccessInterface.java index fa382621c8..1f3df6af65 100644 --- a/core/java/src/net/metanotion/io/RandomAccessInterface.java +++ b/core/java/src/net/metanotion/io/RandomAccessInterface.java @@ -28,9 +28,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.metanotion.io; +import java.io.Closeable; import java.io.IOException; -public interface RandomAccessInterface { +public interface RandomAccessInterface extends Closeable { public long getFilePointer() throws IOException; public long length() throws IOException; public int read() throws IOException; diff --git a/core/java/src/net/metanotion/io/block/BlockFile.java b/core/java/src/net/metanotion/io/block/BlockFile.java index f6ea7d6340..0187022048 100644 --- a/core/java/src/net/metanotion/io/block/BlockFile.java +++ b/core/java/src/net/metanotion/io/block/BlockFile.java @@ -28,6 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.metanotion.io.block; +import java.io.Closeable; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; @@ -64,7 +65,7 @@ import net.i2p.util.Log; * Pages are 1 KB and are numbered starting from 1. * e.g. the Metaindex skiplist is at offset 1024 bytes */ -public class BlockFile { +public class BlockFile implements Closeable { public static final int PAGESIZE = 1024; public static final long OFFSET_MOUNTED = 20; public final Log log = I2PAppContext.getGlobalContext().logManager().getLog(BlockFile.class); diff --git a/core/java/src/net/metanotion/io/block/index/BSkipList.java b/core/java/src/net/metanotion/io/block/index/BSkipList.java index 5eef949cf4..3a2d8b599c 100644 --- a/core/java/src/net/metanotion/io/block/index/BSkipList.java +++ b/core/java/src/net/metanotion/io/block/index/BSkipList.java @@ -28,6 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.metanotion.io.block.index; +import java.io.Closeable; import java.io.IOException; import java.util.HashMap; @@ -50,7 +51,7 @@ import net.i2p.util.Log; * * Always fits on one page. */ -public class BSkipList extends SkipList { +public class BSkipList extends SkipList implements Closeable { private static final long MAGIC = 0x536b69704c697374l; // "SkipList" public int firstSpanPage = 0; public int firstLevelPage = 0; diff --git a/core/java/src/net/metanotion/util/skiplist/SkipLevels.java b/core/java/src/net/metanotion/util/skiplist/SkipLevels.java index e4665fc4b3..bd9da7ba16 100644 --- a/core/java/src/net/metanotion/util/skiplist/SkipLevels.java +++ b/core/java/src/net/metanotion/util/skiplist/SkipLevels.java @@ -28,12 +28,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.metanotion.util.skiplist; +import java.io.Flushable; + import net.metanotion.io.block.BlockFile; import net.i2p.I2PAppContext; import net.i2p.util.Log; -public class SkipLevels { +public class SkipLevels implements Flushable { /** We can't have more than 2**32 pages */ public static final int MAX_SIZE = 32; diff --git a/core/java/src/net/metanotion/util/skiplist/SkipList.java b/core/java/src/net/metanotion/util/skiplist/SkipList.java index 74e35f56ac..6f44e9e23a 100644 --- a/core/java/src/net/metanotion/util/skiplist/SkipList.java +++ b/core/java/src/net/metanotion/util/skiplist/SkipList.java @@ -28,13 +28,14 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.metanotion.util.skiplist; +import java.io.Flushable; import java.util.Random; import net.i2p.util.RandomSource; //import net.metanotion.io.block.BlockFile; -public class SkipList { +public class SkipList implements Flushable { /** the probability of each next higher level */ protected static final int P = 2; private static final int MIN_SLOTS = 4; diff --git a/core/java/src/net/metanotion/util/skiplist/SkipSpan.java b/core/java/src/net/metanotion/util/skiplist/SkipSpan.java index ae2cc9ef7d..94210ebd4b 100644 --- a/core/java/src/net/metanotion/util/skiplist/SkipSpan.java +++ b/core/java/src/net/metanotion/util/skiplist/SkipSpan.java @@ -28,9 +28,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package net.metanotion.util.skiplist; +import java.io.Flushable; + //import net.metanotion.io.block.BlockFile; -public class SkipSpan { +public class SkipSpan implements Flushable { /** This is actually limited by BlockFile.spanSize which is much smaller */ public static final int MAX_SIZE = 256; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java index ba10f88721..c3c413930a 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/PersistentDataStore.java @@ -13,6 +13,7 @@ import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FilenameFilter; +import java.io.Flushable; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -193,7 +194,7 @@ class PersistentDataStore extends TransientDataStore { * we will soon have to implement a scheme for keeping only * a subset of all DatabaseEntrys in memory and keeping the rest on disk. */ - private class Writer implements Runnable { + private class Writer implements Runnable, Flushable { private final Map<Hash, DatabaseEntry>_keys; private final Object _waitLock; private volatile boolean _quit; diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java index 3f77d73a7e..703ee5050a 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPConnection.java @@ -1,5 +1,6 @@ package net.i2p.router.transport.ntcp; +import java.io.Closeable; import java.io.IOException; import java.net.Inet6Address; import java.nio.ByteBuffer; @@ -64,7 +65,7 @@ import net.i2p.util.VersionComparator; *</pre> * */ -class NTCPConnection { +class NTCPConnection implements Closeable { private final RouterContext _context; private final Log _log; private SocketChannel _chan; -- GitLab