1 23 24 package com.sun.enterprise.admin.jmx.remote.streams; 25 26 import java.io.InputStream ; 27 28 public class JMXInbandStream { 29 static class JMXInbandStreamContext { 30 InputStream outgoing = null; 31 InputStream incoming = null; 32 long length = -1; 33 } 34 35 private static ThreadLocal thrLocal = new ThreadLocal (); 36 37 public static void setOutputStream(InputStream in, long len) { 38 JMXInbandStreamContext ctx = getContext(); 39 ctx.outgoing = in; 40 if (len > 0) 41 ctx.length = len; 42 thrLocal.set(ctx); 43 } 44 45 public static InputStream getOutgoingStream() { 46 JMXInbandStreamContext ctx = getContext(); 47 return ctx.outgoing; 48 } 49 50 public static long getOutgoingStreamLength() { 51 JMXInbandStreamContext ctx = getContext(); 52 return ctx.length; 53 } 54 55 public static InputStream getInputStream() { 56 JMXInbandStreamContext ctx = getContext(); 57 return ctx.incoming; 58 } 59 60 public static void setIncomingStream(InputStream in) { 61 JMXInbandStreamContext ctx = getContext(); 62 ctx.incoming = in; 63 thrLocal.set(ctx); 64 } 65 66 private static JMXInbandStreamContext getContext() { 67 JMXInbandStreamContext ctx = 68 (JMXInbandStreamContext) thrLocal.get(); 69 if (ctx == null) { 70 ctx = new JMXInbandStreamContext(); 71 } 72 return ctx; 73 } 74 } 75 76 | Popular Tags |