summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2010-02-11 13:01:09 -0800
committerDoug Zongker <dougz@android.com>2010-02-11 14:07:17 -0800
commitf13b12d4f04bcf11f66a30991cb9bc0066d31bc4 (patch)
treed2946bd909ca9fcdafb7746a920453e1db4c465a /common
parenta32a6a428d63ae6b4b10e311be4b706df153c956 (diff)
downloadframeworks_native-f13b12d4f04bcf11f66a30991cb9bc0066d31bc4.zip
frameworks_native-f13b12d4f04bcf11f66a30991cb9bc0066d31bc4.tar.gz
frameworks_native-f13b12d4f04bcf11f66a30991cb9bc0066d31bc4.tar.bz2
add NO_CLOSE flag for use by Base64OutputStream
Change-Id: Ib2884e7b3853e4e4b2e329edf47c6f64c2f165a7
Diffstat (limited to 'common')
-rw-r--r--common/java/com/android/common/Base64.java7
-rw-r--r--common/java/com/android/common/Base64OutputStream.java8
2 files changed, 14 insertions, 1 deletions
diff --git a/common/java/com/android/common/Base64.java b/common/java/com/android/common/Base64.java
index 772d567..d65e24e 100644
--- a/common/java/com/android/common/Base64.java
+++ b/common/java/com/android/common/Base64.java
@@ -51,6 +51,13 @@ public class Base64 {
*/
public static final int WEB_SAFE = 8;
+ /**
+ * Flag to pass to Base64OutputStream to indicate that it should
+ * not close the output stream it is wrapping when it itself is
+ * closed.
+ */
+ public static final int NO_CLOSE = 16;
+
// --------------------------------------------------------
// decoding
// --------------------------------------------------------
diff --git a/common/java/com/android/common/Base64OutputStream.java b/common/java/com/android/common/Base64OutputStream.java
index 7c37428..76e1b6a 100644
--- a/common/java/com/android/common/Base64OutputStream.java
+++ b/common/java/com/android/common/Base64OutputStream.java
@@ -29,6 +29,7 @@ public class Base64OutputStream extends FilterOutputStream {
private final boolean encode;
private final Base64.EncoderState estate;
private final Base64.DecoderState dstate;
+ private final int flags;
private byte[] buffer = null;
private int bpos = 0;
@@ -59,6 +60,7 @@ public class Base64OutputStream extends FilterOutputStream {
*/
public Base64OutputStream(OutputStream out, int flags, boolean encode) {
super(out);
+ this.flags = flags;
this.encode = encode;
if (encode) {
estate = new Base64.EncoderState(flags, null);
@@ -106,7 +108,11 @@ public class Base64OutputStream extends FilterOutputStream {
public void close() throws IOException {
flushBuffer();
internalWrite(EMPTY, 0, 0, true);
- out.close();
+ if ((flags & Base64.NO_CLOSE) == 0) {
+ out.close();
+ } else {
+ out.flush();
+ }
}
/**