org.apache.catalina.ha.deploy
public class FileMessageFactory extends Object
Version: 1.0
Field Summary | |
---|---|
protected boolean | closed
Once the factory is used, it can not be reused. |
protected byte[] | data
The bytes that we hold the data in, not thread safe. |
protected File | file
The file that we are reading/writing |
protected FileInputStream | in
When openForWrite=false, the input stream is held by this variable |
protected boolean | isWriting
Flag that indicates if a thread is writing messages to disk. |
protected AtomicLong | lastMessageProcessed
The number of the last message procssed. |
static Log | log |
protected Map<Long,FileMessage> | msgBuffer
Messages received out of order are held in the buffer until required. |
protected int | nrOfMessagesProcessed
The number of messages we have written |
protected boolean | openForWrite
True means that we are writing with this factory. |
protected FileOutputStream | out
When openForWrite=true, the output stream is held by this variable |
static int | READ_SIZE
The number of bytes that we read from file |
protected long | size
The total size of the file |
protected long | totalNrOfMessages
The total number of packets that we split this file into |
Method Summary | |
---|---|
protected void | checkState(boolean openForWrite)
Check to make sure the factory is able to perform the function it is
asked to do. |
void | cleanup()
Closes the factory, its streams and sets all its references to null |
File | getFile() |
static FileMessageFactory | getInstance(File f, boolean openForWrite)
Creates a factory to read or write from a file. |
static void | main(String[] args)
Example usage.
|
FileMessage | readMessage(FileMessage f)
Reads file data into the file message and sets the size, totalLength,
totalNrOfMsgs and the message number If EOF is reached, the factory returns null, and closes itself, otherwise the same message is returned as was passed in. |
boolean | writeMessage(FileMessage msg)
Writes a message to file. |
Parameters: openForWrite boolean
Throws: IllegalArgumentException
Parameters: f File - the file to be read or written openForWrite boolean - true, means we are writing to the file, false means we are reading from it
Returns: FileMessageFactory
Throws: FileNotFoundException - if the file to be read doesn't exist IOException - if it fails to create the file that is to be written
Parameters: args String[], args[0] - read from filename, args[1] write to filename
Throws: Exception
Parameters: f FileMessage - the message to be populated with file data
Returns: FileMessage - returns the same message passed in as a parameter, or null if EOF
Throws: IllegalArgumentException - if the factory is for writing or is closed IOException - if a file read exception occurs
Parameters: msg FileMessage - message containing data to be written
Returns: returns true if the file is complete and outputstream is closed, false otherwise.
Throws: IllegalArgumentException - if the factory is opened for read or closed IOException - if a file write error occurs