org.apache.axis.attachments
Class ManagedMemoryDataSource
java.lang.Object
org.apache.axis.attachments.ManagedMemoryDataSource
- javax.activation.DataSource
public class ManagedMemoryDataSource
extends java.lang.Object
implements javax.activation.DataSource
This class allows small attachments to be cached in memory, while large ones are
cached out. It implements a Java Activiation Data source interface.
- Rick Rineholt
static int | MAX_MEMORY_DISK_CACHED - Field MAX_MEMORY_DISK_CACHED
|
static int | MIN_MEMORY_DISK_CACHED - Field MIN_MEMORY_DISK_CACHED
|
static int | READ_CHUNK_SZ - Field READ_CHUNK_SZ
|
protected java.io.BufferedOutputStream | cachediskstream - This is the cached disk stream.
|
protected boolean | closed - If true the source input stream is now closed.
|
protected String | contentType - The content type.
|
protected byte[] | currentMemoryBuf - Hold the last memory buffer.
|
protected int | currentMemoryBufSz - The number of bytes written to the above buffer.
|
protected boolean | debugEnabled - Field debugEnabled
|
protected boolean | deleted - Flag to show if the resources behind this have been deleted.
|
protected java.io.File | diskCacheFile - Field diskCacheFile
|
protected static Log | is_log - Field is_log
|
protected static Log | log - Field log
|
protected int | maxCached - Field maxCached
|
protected java.util.LinkedList | memorybuflist - The linked list to hold the in memory buffers.
|
protected java.util.WeakHashMap | readers - Field readers
|
protected long | totalsz - The total size in bytes in this data source.
|
protected void | close() - This method is a low level write.
|
boolean | delete()
|
protected void | finalize()
|
protected void | flushToDisk() - Routine to flush data to disk if is in memory.
|
java.lang.String | getContentType() - This method returns the MIME type of the data in the form of a string.
|
File | getDiskCacheFile() - get the filename of the content if it is cached to disk.
|
java.io.InputStream | getInputStream() - This method returns an InputStream representing the the data and throws the appropriate exception if it can not do so.
|
java.lang.String | getName() - This will flush any memory source to disk and
provide the name of the file if desired.
|
java.io.OutputStream | getOutputStream() - This method returns an OutputStream where the data can be written and
throws the appropriate exception if it can not do so.
|
static void | main(arg[] ) - Method main
|
protected void | write(byte[] data) - Write bytes to the stream.
|
protected void | write(byte[] data, int length) - This method is a low level write.
|
MAX_MEMORY_DISK_CACHED
public static final int MAX_MEMORY_DISK_CACHED
Field MAX_MEMORY_DISK_CACHED
- 16384
MIN_MEMORY_DISK_CACHED
public static final int MIN_MEMORY_DISK_CACHED
Field MIN_MEMORY_DISK_CACHED
- -1
READ_CHUNK_SZ
public static final int READ_CHUNK_SZ
Field READ_CHUNK_SZ
- 32768
cachediskstream
protected java.io.BufferedOutputStream cachediskstream
This is the cached disk stream.
closed
protected boolean closed
If true the source input stream is now closed.
contentType
protected String contentType
The content type. This defaults to
application/octet-stream
.
currentMemoryBuf
protected byte[] currentMemoryBuf
Hold the last memory buffer.
currentMemoryBufSz
protected int currentMemoryBufSz
The number of bytes written to the above buffer.
debugEnabled
protected boolean debugEnabled
Field debugEnabled
deleted
protected boolean deleted
Flag to show if the resources behind this have been deleted.
diskCacheFile
protected java.io.File diskCacheFile
Field diskCacheFile
is_log
protected static Log is_log
Field is_log
log
protected static Log log
Field log
maxCached
protected int maxCached
Field maxCached
memorybuflist
protected java.util.LinkedList memorybuflist
The linked list to hold the in memory buffers.
readers
protected java.util.WeakHashMap readers
Field readers
totalsz
protected long totalsz
The total size in bytes in this data source.
ManagedMemoryDataSource
protected ManagedMemoryDataSource()
Constructor ManagedMemoryDataSource.
ManagedMemoryDataSource
public ManagedMemoryDataSource(java.io.InputStream ss,
int maxCached,
String contentType)
throws java.io.IOException
Create a new boundary stream.
ss
- is the source input stream that is used to create this data source.maxCached
- This is the max memory that is to be used to cache the data.contentType
- the mime type for this data stream.
by buffering you can some effiency in searching.
ManagedMemoryDataSource
public ManagedMemoryDataSource(java.io.InputStream ss,
int maxCached,
String contentType,
boolean readall)
throws java.io.IOException
Create a new boundary stream.
ss
- is the source input stream that is used to create this data source.maxCached
- This is the max memory that is to be used to cache the data.contentType
- the mime type for this data stream.
by buffering you can some effiency in searching.readall
- if true will read in the whole source.
close
protected void close()
throws java.io.IOException
This method is a low level write.
Close the stream.
delete
public boolean delete()
finalize
protected void finalize()
throws Throwable
flushToDisk
protected void flushToDisk()
throws java.io.IOException,
java.io.FileNotFoundException
Routine to flush data to disk if is in memory.
getContentType
public java.lang.String getContentType()
This method returns the MIME type of the data in the form of a string.
- The mime type.
getDiskCacheFile
public File getDiskCacheFile()
get the filename of the content if it is cached to disk.
- file object pointing to file, or null for memory-stored content
getInputStream
public java.io.InputStream getInputStream()
throws java.io.IOException
This method returns an InputStream representing the the data and throws the appropriate exception if it can not do so.
- the java.io.InputStream for the data source.
getName
public java.lang.String getName()
This will flush any memory source to disk and
provide the name of the file if desired.
- the name of the file of the stream
getOutputStream
public java.io.OutputStream getOutputStream()
throws java.io.IOException
This method returns an OutputStream where the data can be written and
throws the appropriate exception if it can not do so.
NOT SUPPORTED, not need for axis, data sources are create by constructors.
- always
null
main
public static void main(arg[] )
Method main
write
protected void write(byte[] data)
throws java.io.IOException
Write bytes to the stream.
data
- all bytes of this array are written to the stream
write
protected void write(byte[] data,
int length)
throws java.io.IOException
This method is a low level write.
Note it is designed to in the future to allow streaming to both memory
AND to disk simultaneously.
data
- length
-
Copyright B) 2005 Apache Web Services Project. All Rights Reserved.