|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.devexperts.qd.qtp.MessageConsumerAdapter
com.devexperts.qd.qtp.MessageAdapter
public abstract class MessageAdapter
The MessageAdapter
is a basic adapter of some entity to message API.
It implements both MessageConsumer
and MessageProvider
interfaces
with default behavior and is recommended for extension by specific adapters
(instead of pure implementations of corresponding interfaces). Certain QTP connectors
works only with MessageAdapter
as a single representative of some entity.
Nested Class Summary | |
---|---|
static class |
MessageAdapter.AbstractFactory
An abstract message adapter factory. |
static interface |
MessageAdapter.CloseListener
The CloseListener is used to notify QTP connector that
this message adapter was closed by some reason. |
static interface |
MessageAdapter.Factory
The Factory performs creation of actual message agents
on demand from QTP connector. |
Field Summary | |
---|---|
protected MessageAdapter.CloseListener |
closeListener
|
protected MessageListener |
messageListener
|
Constructor Summary | |
---|---|
protected |
MessageAdapter(QDStats stats)
|
Method Summary | |
---|---|
protected boolean |
addMask(long mask)
Adds bytes from argument mask to internal mask and notifies listeners if internal mask changed. |
protected static long |
clearMessageMask(long mask,
MessageType message)
|
void |
close()
Closes this adapter. |
protected void |
closeImpl()
|
static DataScheme |
getCommonScheme(QDCollector c1,
QDCollector c2,
QDCollector c3)
Returns common data scheme or throws IllegalArgumentException. |
com.devexperts.util.TypedMap |
getConnectionVariables()
Returns per-connection variables for this message adapter. |
protected static long |
getMessageMask(MessageType message)
|
protected java.lang.String |
getRemoteHostAddress()
|
abstract DataScheme |
getScheme()
|
QDStats |
getStats()
|
java.lang.String |
getStatus()
|
static SubscriptionFilterFactory |
getSubscriptionFilterFactory(DataScheme scheme)
|
void |
handleCorruptedMessage(int messageType)
|
void |
handleCorruptedStream()
|
void |
handleUnknownMessage(int messageType)
|
protected static boolean |
hasMessageMask(long mask,
MessageType message)
|
boolean |
isAlive()
Returns true when this message adapter is alive
(was started and was not closed yet). |
boolean |
isClosed()
|
boolean |
isProtocolDescriptorCompatible(ProtocolDescriptor desc)
|
long |
nextRetrieveTime(long currentTime)
|
protected void |
notifyListener()
|
void |
prepareProtocolDescriptor(ProtocolDescriptor desc)
Prepares outgoing protocol descriptor. |
void |
processDescribeProtocol(ProtocolDescriptor desc)
Process incoming protocol descriptor. |
protected void |
reportIgnoredMessage(MessageType message)
|
protected long |
retrieveDescribeProtocolMessage(MessageVisitor visitor,
long mask)
|
protected long |
retrieveMask()
|
boolean |
retrieveMessages(MessageVisitor visitor)
Retrieves accumulated message into specified message visitor. |
void |
setCloseListener(MessageAdapter.CloseListener listener)
|
void |
setConnectionVariables(com.devexperts.util.TypedMap connectionVariables)
Sets per-connection variables for this message adapter. |
void |
setMessageListener(MessageListener listener)
Note: this method SHOULD be called before calling .start() - it does not give immediate notification regarding the pending messages |
void |
start()
Starts this adapter. |
protected void |
startImpl()
|
java.lang.String |
toString()
Returns description of this MessageAdapter for management and logging purposes. |
void |
useDescribeProtocol()
Invocation of this method causes this MessageAdapter to send
DESCRIBE_PROTOCOL message if it is capable of doing so. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected volatile MessageAdapter.CloseListener closeListener
protected volatile MessageListener messageListener
Constructor Detail |
---|
protected MessageAdapter(QDStats stats)
Method Detail |
---|
public static DataScheme getCommonScheme(QDCollector c1, QDCollector c2, QDCollector c3)
null
parameters.
c1
- QDCollectorc2
- QDCollectorc3
- QDCollector
java.lang.IllegalArgumentException
- if collectors have different schemes or all are null
.public static SubscriptionFilterFactory getSubscriptionFilterFactory(DataScheme scheme)
public java.lang.String toString()
MessageAdapter
for management and logging purposes.
toString
in class java.lang.Object
public abstract DataScheme getScheme()
protected void notifyListener()
public void setCloseListener(MessageAdapter.CloseListener listener)
public long nextRetrieveTime(long currentTime)
public com.devexperts.util.TypedMap getConnectionVariables()
public void setConnectionVariables(com.devexperts.util.TypedMap connectionVariables)
protected java.lang.String getRemoteHostAddress()
public void useDescribeProtocol()
MessageAdapter
to send
DESCRIBE_PROTOCOL
message if it is capable of doing so.
It should be invoked once before calling start()
.
The code that calls this method shall also consult nextRetrieveTime(long)
.
protected long retrieveDescribeProtocolMessage(MessageVisitor visitor, long mask)
public void prepareProtocolDescriptor(ProtocolDescriptor desc)
super.prepareProtocolDescriptor(desc)
.
desc
- outgoing protocol descriptorpublic void processDescribeProtocol(ProtocolDescriptor desc)
super.processDescribeProtocol(desc)
.
processDescribeProtocol
in interface MessageConsumer
processDescribeProtocol
in class MessageConsumerAdapter
desc
- incoming protocol descriptorpublic boolean isProtocolDescriptorCompatible(ProtocolDescriptor desc)
public QDStats getStats()
public void handleCorruptedStream()
handleCorruptedStream
in interface MessageConsumer
handleCorruptedStream
in class MessageConsumerAdapter
public void handleCorruptedMessage(int messageType)
handleCorruptedMessage
in interface MessageConsumer
handleCorruptedMessage
in class MessageConsumerAdapter
public void handleUnknownMessage(int messageType)
handleUnknownMessage
in interface MessageConsumer
handleUnknownMessage
in class MessageConsumerAdapter
public boolean retrieveMessages(MessageVisitor visitor)
MessageProvider
true
if some messages still remains in the provider
or false
if all accumulated messages were retrieved.
retrieveMessages
in interface MessageProvider
public void setMessageListener(MessageListener listener)
setMessageListener
in interface MessageProvider
public final boolean isAlive()
true
when this message adapter is alive
(was started
and was not closed
yet).
isAlive
in interface MessageAdapterMBean
public final boolean isClosed()
public final java.lang.String getStatus()
public final void start()
public final void close()
close
in interface MessageAdapterMBean
protected void startImpl()
protected void closeImpl()
protected void reportIgnoredMessage(MessageType message)
protected final long retrieveMask()
protected final boolean addMask(long mask)
mask
- changed bytes mask.
is alive
.protected static long getMessageMask(MessageType message)
protected static boolean hasMessageMask(long mask, MessageType message)
protected static long clearMessageMask(long mask, MessageType message)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |