Package org.apache.catalina.tribes.io
Class ObjectReader
- java.lang.Object
-
- org.apache.catalina.tribes.io.ObjectReader
-
public class ObjectReader extends java.lang.ObjectThe object reader object is an object used in conjunction with java.nio TCP messages. This object stores the message bytes in aXByteBufferuntil a full package has been received. This object uses an XByteBuffer which is an extendable object buffer that also allows for message encoding and decoding.
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanaccessedWhether this reader is currently being accessed.protected longlastAccessTimestamp of the last access.protected static StringManagersmString manager for internationalization.
-
Constructor Summary
Constructors Constructor Description ObjectReader(int packetSize)Creates an ObjectReader with the specified packet size.ObjectReader(java.net.Socket socket)Creates anObjectReaderfor a TCP socketObjectReader(java.nio.channels.SocketChannel channel)Creates anObjectReaderfor a TCP NIO socket channel
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccess()Marks this reader as being accessed.intappend(byte[] data, int off, int len, boolean count)Appends new bytes to the buffer.intappend(java.nio.ByteBuffer data, int len, boolean count)Append new bytes to buffer.intbufferSize()Returns the current buffer size.voidclose()Closes this reader and releases the buffer.intcount()Returns the number of packages that the reader has readChannelMessage[]execute()Send buffer to cluster listener (callback).voidfinish()Marks this reader as no longer being accessed.longgetLastAccess()Returns the timestamp of the last access.booleanhasPackage()Checks if there is a complete package available.booleanisAccessed()Checks if this reader is currently being accessed.booleanisCancelled()Checks if this reader has been cancelled.voidsetCancelled(boolean cancelled)Sets the cancelled state of this reader.voidsetLastAccess(long lastAccess)Sets the timestamp of the last access.
-
-
-
Field Detail
-
sm
protected static final StringManager sm
String manager for internationalization.
-
lastAccess
protected long lastAccess
Timestamp of the last access.
-
accessed
protected boolean accessed
Whether this reader is currently being accessed.
-
-
Constructor Detail
-
ObjectReader
public ObjectReader(int packetSize)
Creates an ObjectReader with the specified packet size.- Parameters:
packetSize- The initial packet buffer size
-
ObjectReader
public ObjectReader(java.nio.channels.SocketChannel channel)
Creates anObjectReaderfor a TCP NIO socket channel- Parameters:
channel- - the channel to be read.
-
ObjectReader
public ObjectReader(java.net.Socket socket)
Creates anObjectReaderfor a TCP socket- Parameters:
socket- Socket
-
-
Method Detail
-
access
public void access()
Marks this reader as being accessed.
-
finish
public void finish()
Marks this reader as no longer being accessed.
-
isAccessed
public boolean isAccessed()
Checks if this reader is currently being accessed.- Returns:
- true if the reader is being accessed
-
append
public int append(java.nio.ByteBuffer data, int len, boolean count)Append new bytes to buffer.- Parameters:
data- new transfer bufferlen- length in buffercount- whether to return the count- Returns:
- number of messages that was sent to callback (or -1 if count == false)
- See Also:
XByteBuffer.countPackages()
-
append
public int append(byte[] data, int off, int len, boolean count)Appends new bytes to the buffer.- Parameters:
data- The byte arrayoff- The offset in the arraylen- The length of datacount- Whether to count packages- Returns:
- Number of messages sent to callback, or -1 if count is false
-
execute
public ChannelMessage[] execute()
Send buffer to cluster listener (callback). Is message complete receiver send message to callback?- Returns:
- array of received packages/messages
- See Also:
ReceiverBase.messageDataReceived(ChannelMessage),XByteBuffer.doesPackageExist(),XByteBuffer.extractPackage(boolean)
-
bufferSize
public int bufferSize()
Returns the current buffer size.- Returns:
- The buffer length
-
hasPackage
public boolean hasPackage()
Checks if there is a complete package available.- Returns:
- true if a complete package exists
-
count
public int count()
Returns the number of packages that the reader has read- Returns:
- int
-
close
public void close()
Closes this reader and releases the buffer.
-
getLastAccess
public long getLastAccess()
Returns the timestamp of the last access.- Returns:
- The last access timestamp
-
isCancelled
public boolean isCancelled()
Checks if this reader has been cancelled.- Returns:
- true if cancelled
-
setLastAccess
public void setLastAccess(long lastAccess)
Sets the timestamp of the last access.- Parameters:
lastAccess- The last access timestamp
-
setCancelled
public void setCancelled(boolean cancelled)
Sets the cancelled state of this reader.- Parameters:
cancelled- The cancelled state
-
-