|
|||||||||
PREV NEXT | FRAMES NO FRAMES |
MessageVisitor
interface into just two methods:
AbstractMessageVisitor.visitData(com.devexperts.qd.DataProvider, com.devexperts.qd.qtp.MessageType)
and AbstractMessageVisitor.visitSubscription(com.devexperts.qd.SubscriptionProvider, com.devexperts.qd.qtp.MessageType)
.true
if record pointed to by this cursor is accepted.
RecordCursor
.
listener
to this message connector.
MessageConnectors.createMessageConnectors
has syntax errors.AgentAdapter
adapts agent side of QD to message API.RecordCursor
that points to a freshly allocated storage with a copy of
data from a given source.
RecordCursor
that points to a freshly allocated storage for a given record
integer and object field values and also sets symbol.
RecordCursor
that points to a freshly allocated storage for a given record
integer and object field values and also sets symbol.
RecordCursor.Owner
that points to a freshly allocated storage with a copy of
data from a given source.
RecordCursor.Owner
that points to a freshly allocated storage for a given record
integer and object field values and also sets symbol.
RecordCursor.Owner
that points to a freshly allocated storage for a given record
integer and object field values.
RecordCursor
.
RecordCursor
performing RecordBuffer.compact()
if needed to avoid growing the size of internal arrays.
BlobByteArrayComposer
composes blobs of QD_HISTORY_DATA and accumulates them
in a linear byte array buffer.BlobByteArrayParser
parses BLOB QD_HISTORY_DATA
accumulated in a linear byte array buffer.ByteArrayComposer
composes QTP messages and accumulates them
in a linear byte array buffer.ByteArrayInput
class instead.ByteArrayOutput
class instead.ByteArrayField
represents a linear byte array field
with plain serialized form.ByteArrayParser
parses QTP messages accumulated
in a linear byte array buffer.IOUtil.bytesToObject(byte[])
method instead.
IOUtil.bytesToObjects(Class[], byte[])
method instead.
IOUtil.bytesToObjects(Class[], byte[], ClassLoader)
method instead.
AgentAdapter
.StringField
or ByteArrayField
.RecordBuffer.size()
by one.
QDStats.SType.CLIENT_SOCKET_CONNECTOR
ClientSocketConnector
handles standard client socket using blocking API.ClientSocketConnector.ClientSocketConnector(com.devexperts.connector.proto.ApplicationConnectionFactory, String, int)
ClientSocketConnector
.QDCollector
.
QDCollector
.
ServerSocketConnector.stop()
IOUtil
class instead.CompactCharField
represents a single character field
with UTF-8 serialized form.IOUtil
class instead.CompactIntField
represents an integer field
with compact serialized form.double
.
mantissa / 10^precision
.
DataProvider
that listens for multiple
DataProvider
instances and on retrieveData
method invocation only retrieves
data from the providers that have data available.CompositeDataProvider
for a given list of individual data providers.
SubscriptionFilter
utilities that combine other filters with ',' (or) operations,
'&' (and) operations, and '!'MessageAdapter.Factory
into ConfigurableMessageAdapterFactory
if
neccessary, so that it can be used with MessageConnectors.createMessageConnectors(com.devexperts.qd.qtp.ConfigurableMessageAdapterFactory, java.lang.String, com.devexperts.qd.stats.QDStats)
method, but does not
accept any additional specification for factory.
ConfigurableMessageAdapterFactory
creates MessageAdapter.Factory
with the given specification string.socket
and
returns MessageAdapter
for communication with remote host.
SubscriptionFilter
based on the given spec
.
MessageAdapter.Factory
with the given specification string.
Object.clone()
and replaces filter
using default SubscriptionFilterFactory
or PatternFilter
and using old
filter as a chained filter for it.
QDStats
that does not actually track anything (is always empty like QDStats.VOID
but is named.
QDStats
with the specified type
and scheme.
RecordCursor
.
RecordBuffer
instead.DataConsumer
processes incoming data.DataIntField
and DataObjField
.DataIntField
defines identity and access API for Int-fields.DataIterator
defines protocol of serial access to the data
using Iterator pattern.DataIterator
interface.DataListener
is used to receive notifications about data availability
in the corresponding data providers.DataObjField
defines identity and access API for Obj-fields.Executor
.NullPointerException
or other problems in extending code,
because this method starts processing and leaks this
pointer to other threads (submits it to executor}
right from inside constructor. Derived classes that initialize their fields (including final ones) in constructor
may see default, non-initialized values of those fields. Use DataProcessor.DataProcessor(Executor)
and call
DataProcessor.startProcessing(DataProvider)
method after construction. Use CompositeDataProvider
class if you
need support for multiple data providers.
DataProvider
allows retrieval of accumulated data.DataRecord
defines identity and content of generic data record.DataScheme
defines overall scheme of data records and fields.DataVisitor
API to RecordSink
API.DataVisitor
defines protocol of serial access to the data
using Visitor pattern.QDLog.log
and Logging
Decimal
class contains a set of methods to work with
floating-point numbers packed into int
primitive type.DecimalField
represents a decimal field with compact serialized form.HttpConnector.CONNECTION_ID_PARAMETER
request
property is not specified.
DefaultRecord
is a basic implementation of data record.DefaultScheme
is a basic implementation of data scheme.DistributorAdapter
adapts distributor side of QD to message API.QDLog.log
and Logging
QDLog.log
and Logging
SymbolObjectVisitor
.
ByteArrayDataInput.EndOfBufferException
FileConnector.FileConnector(com.devexperts.connector.proto.ApplicationConnectionFactory , String)
PatternFilter
or CompositeFilters
has syntax errors.null
if the message type is not known.
null
if not found.
DataIterator.nextRecord()
.
RecordBuffer.next()
and RecordCursor.getCipher()
SubscriptionIterator.nextRecord()
.
QDTicker.getData(RecordCursor.Owner, DataRecord, int, String)
RecordCursor
via caller-provided
RecordCursor.Owner
to the
corresponding memory storage in read-only mode.
DataRecord
.
PatternFilter.valueOf(pattern, scheme)
CompositeFilters.makeAnd(PatternFilter.valueOf(pattern, scheme), chained_filter)
QDLog.log
and Logging
QDMonitoring
automatically.
IOUtil.getCompactLength(long)
method instead.
RecordBuffer.add(com.devexperts.qd.DataRecord, int, java.lang.String)
method.
Logging
instance that is tied to this MessageConnector and
includes this connector's name into the logs.
null
if there is no mapping for this record.
creates
new
one if not found.
VOID
if not found.
DataRecord
of this field.
DataScheme
of this field.
QDStats
associated with this message connector.
null
if none specified.
DataIterator.nextRecord()
.
RecordBuffer.next()
and RecordCursor.getSymbol()
null
if not found.
SubscriptionIterator.nextRecord()
.
null
if not found.
AbstractByteArrayComposer.DEFAULT_THRESHOLD
can be configured with system properties if needed.
RecordBuffer.next()
and RecordCursor.getTime()
SubscriptionIterator.nextRecord()
.
encode("*")
.
QDStats.SType.CONNECTION
HttpConnector.HttpConnector(com.devexperts.connector.proto.ApplicationConnectionFactory , String)
QDLog.log
and Logging
QDStats.initRoot(com.devexperts.qd.stats.QDStats.SType, com.devexperts.qd.DataScheme)
instead.
true
when this message adapter is alive
(was started
and was not closed
yet).
true
if thread is closed and clears interrupt flag.
true
if this data buffer has no records.
true
if this subscription buffer has no records.
true
when contents of this cursor are equal (identity-wise) to the contents
of the other cursor.
true
if this cursor is in read-only mode.
true
if subscribed to the corresponding record and symbol with the
corresponding time.
MarshalledObjField
represents an object field with plain Java serialized form.MessageAdapter
is a basic adapter of some entity to message API.CloseListener
is used to notify QTP connector that
this message adapter was closed by some reason.Factory
performs creation of actual message agents
on demand from QTP connector.MessageAdapter
.MessageConnector
.MessageConnector
.MessageConnector
exposes via JMX.MessageType
instead.MessageConsumer
processes incoming QTP messages.ProtocolDescriptor
.MessageListener
is used to receive notifications about
QTP messages availability.MessageProvider
provides QTP messages.MessageVisitor
defines protocol of serial access to messages
using Visitor pattern.length
in
out
buffer form position oldPos
into position newPos
.
RecordSource
that reads this record buffer from
current position
to its current limit
.
RecordSource
that reads this record buffer from
the specified start position to the specified end position.
RecordBuffer.next()
and RecordCursor.getInt(int)
RecordBuffer.next()
and RecordCursor.getObj(int)
RecordBuffer.next()
NioServerConnector.NioServerConnector(com.devexperts.connector.proto.ApplicationConnectionFactory, int)
NioServerConnector
.DataProvider
part
of this data buffer.
SubscriptionProvider
part
of this subscription buffer.
IOUtil.objectsToBytes(java.lang.Class[], java.lang.Object...)
method instead.
IOUtil.objectToBytes(java.lang.Object)
method instead.
IOUtil
class instead.Decimal.parseDecimal(String)
instead -- it is much faster (though does not
support scientific notation yet).
Decimal.parseDecimal(String)
but works directly with array of characters.
SubscriptionFilter
that understands a simple GLOB-like grammar
to specify matching symbols.PentaCodec
performs symbol coding and serialization using
extensible 5-bit encoding.PlainIntField
represents an integer field with plain serialized form.ByteArrayField
with custom serialization whenever possible,
or use MarshalledObjField
that prevents unnecessary costly deserialization of
objects in multiplexor nodes.processData(it, null)
.
true
if this message
consumer understands the protocol that remote peer intends to use.
processSubscription(iterator, MessageType.HISTORY_ADD_SUBSCRIPTION)
.
processData(iterator, MessageType.HISTORY_DATA)
.
processSubscription(iterator, MessageType.HISTORY_REMOVE_SUBSCRIPTION)
.
AbstractByteArrayParser.recordBuffer
or AbstractByteArrayParser.subscriptionBuffer
into the consumer.
handleUnknownMessage(message_type)
.
AbstractByteArrayParser.pendingMessageType
to null
.
processSubscription(iterator, MessageType.STREAM_ADD_SUBSCRIPTION)
.
processData(iterator, MessageType.STREAM_DATA)
.
processSubscription(iterator, MessageType.STREAM_REMOVE_SUBSCRIPTION)
.
processSubscription(iterator, MessageType.TICKER_ADD_SUBSCRIPTION)
.
processData(iterator, MessageType.TICKER_DATA)
.
processSubscription(iterator, MessageType.TICKER_REMOVE_SUBSCRIPTION)
.
DESCRIBE_PROTOCOL
message.QDAgent
represents an individual data consumer in the QDCollector
.QDCollector
represents a hub which collects subscription from
data consumers and distributes it among data providers and at the same time it
collects data from data providers and distributes it among data consumers.QDCollector
.QDDistributor
represents an individual data provider in the QDCollector
.QDFactory
creates implementations for core QD components.QDHistory
represents a history-view of the data.Logging
Services
.type
.
QDStats.QDStats(com.devexperts.qd.stats.QDStats.SType, com.devexperts.qd.DataScheme)
instead.
QDStream
represents a stream-view of the data.QDTicker
represents a ticker-view of the data.closed
by
its parent, or being forcefully interrupted/stopped by someone else.key_properties
of
create(type, key_properties)
.
n
bytes of data into the buffer.
IOUtil.readByteArray(java.io.DataInput)
method instead.
IOUtil.readUTFChar(java.io.DataInput)
method instead.
IOUtil.readCharArray(java.io.DataInput)
method instead.
readFrom(in, SessionState.EMPTY)
which is faster,
because it works via BufferedInput
class.
DataIntField.readInt(BufferedInput)
which is faster.
IOUtil.readCompactInt(java.io.DataInput)
method instead.
IOUtil.readCompactLong(java.io.DataInput)
method instead.
DataObjField.readObj(BufferedInput)
which is faster.
IOUtil.readObject(java.io.DataInput)
method instead.
IOUtil.readCharArrayString(java.io.DataInput)
method instead.
IOUtil.readUTFString(java.io.DataInput)
method instead.
RecordBuffer
.
RecordCursor
gives high-performance safe read (and optional write) access to one record
(one row on information in DB terms) directly from any int[]
and Object[]
data arrays that might constitute a part of a larger data structure.RecordCusor.allocate(...)
or RecordCusor.allocateOwner(...)
methods.
RecordCursor
contains an implicit reference to RecordCursor
.RecordCusor.allocateOwner(...)
to get owner and use Onwner's
setXXX(...)
methods to configure the cursor as needed.
RecordCursor
.RecordReader
implements a strategy to read records from BufferedInput
into
RecordBuffer
.BufferedInput
but add another, resulting record, into
RecordBuffer
.BufferedInput
, but does not add anything into RecordBuffer
.RecordCursor
using RecordSource.next()
method.RecordBuffer
to a thread-local pool.
listener
from this message connector.
RecordCursor.Owner.reset()
.
position
into the specified visitor
and counts the number of retrieved records.
position
into the specified sink
and counts the number of retrieved records.
SerialFieldType.REPRESENTATION_MASK
are used for representation information.
data fields
that are transferred via QTP.QDStats.SType.SERVER_SOCKET_CONNECTOR
ServerSocketConnector
handles standard server socket using blocking API.ServerSocketConnector.ServerSocketConnector(com.devexperts.connector.proto.ApplicationConnectionFactory, int)
ServerSocketConnector
.RecordCursor.Owner.setReadOnly(boolean)
,
RecordCursor.Owner.setRecord(com.devexperts.qd.DataRecord)
,
RecordCursor.Owner.setSymbol(int, String)
,
RecordCursor.Owner.setArrays(int[], Object[])
,
RecordCursor.Owner.setOffsets(int, int)
RecordCusor.allocateOwner(...)
to get owner and use Onwner's
setXXX(...)
methods to configure the cursor as needed.
UnsupportedOperationException
.
QDLog.log
and Logging
DefaultRecord.DefaultRecord(int, String, boolean, DataIntField[], DataObjField[])
constructor now does it automatically.
DefaultScheme.DefaultScheme(SymbolCodec, DataRecord[])
constructor now does it automatically.
RecordCursor.Owner.setRecord(com.devexperts.qd.DataRecord)
,
RecordCursor.Owner.setArrays(int[], Object[])
,
RecordCursor.Owner.setOffsets(int, int)
QDStats
associated with this message connector.
QDAgent.setBufferOverflowStrategy(int, boolean, boolean)
}
AbstractByteArrayComposer.DEFAULT_THRESHOLD
can be configured with system properties if needed.
trust manager
to be used by SSLSocketFactory
.
ShortStringField
represents a short (up to 4 characters) string
in a single integer with compact serialized form.QDStats.SType.CONNECTION
MessageAdapter.Factory
in order to
run any custom authorization/authentication protocol with remote host.SubscriptionFilterFactory
.DataProvider
.
QDDistributor
.
SubscriptionProvider
instances.
StringField
represents a character sequence field
with CESU-8 serialized form.SubscriptionBuffer
class is an universal buffer for subscription,
able to receive and retrieve subscription via all appropriate interfaces and via
random access.SubscriptionConsumer
processes incoming subscription.SubscriptionContainer
represents data structure that keeps subscription
in map-like fashion.SubscriptionFilter
is used to block unwanted subscription.SubscriptionFilterFactory
SubscriptionFilter
instances.SubscriptionIterator
provides serial access to subscription.SubscriptionListener
is used to receive notifications about
subscription availability in the corresponding subscription providers.Executor
.NullPointerException
or other problems in extending code,
because this method starts processing and leaks this
pointer to other threads (submits it to executor}
right from inside constructor. Derived classes that initialize their fields (including final ones) in constructor
may see default, non-initialized values of those fields. Use SubscriptionProcessor.SubscriptionProcessor(Executor)
and call
SubscriptionProcessor.startProcessing(QDDistributor)
method after construction.
NullPointerException
or other problems in extending code,
because this method starts processing and leaks this
pointer to other threads (submits it to executor}
right from inside constructor. Derived classes that initialize their fields (including final ones) in constructor
may see default, non-initialized values of those fields. Use SubscriptionProcessor.SubscriptionProcessor(Executor)
and call
SubscriptionProcessor.startProcessing(SubscriptionProvider, SubscriptionProvider)
method after construction.
SubscriptionProvider
allows retrieval of accumulated subscription.SubscriptionVisitor
provides serial access to subscription.SymbolCodec
defines coding and serialization of symbols.Object
of type T
.SymbolObjectMap
entries.SymbolReceiver
interface provides a way to retrieve encoded
cipher-symbol pair from certain methods.Double.NaN
if inapplicable.
Double.NaN
if inapplicable.
double
value of the corresponding decimal.
0
if inapplicable.
0
if inapplicable.
MessageAdapter.Factory
for management and logging purposes.
MessageAdapter
for management and logging purposes.
null
instead (for performance reasons).
to
cusor by values from
cursor.
DataIntField.equals(int,int)
or DataObjField.equals(Object,Object)
respectively.
MessageAdapter
to send
DESCRIBE_PROTOCOL
message if it is capable of doing so.
base_factory
with ',' (or) operations, '&' (and) operations, and '!'
FileFormat
by a given string description.
TimePeriod
with value milliseconds.
TimePeriod
represented with a given string.
DefaultScheme.DefaultScheme(SymbolCodec, DataRecord[])
constructor does it all automatically.
SymbolObjectMap
entry.
MessageVisitor.visitSubscription(SubscriptionProvider provider, MessageType MessageType.HISTORY_ADD_SUBSCRIPTION)
instead
MessageVisitor.visitData(DataProvider provider, MessageType MessageType.HISTORY_DATA)
instead
MessageVisitor.visitSubscription(SubscriptionProvider provider, MessageType MessageType.HISTORY_REMOVE_SUBSCRIPTION)
instead
RecordBuffer.add(com.devexperts.qd.DataRecord, int, java.lang.String)
or get visitor via RecordBuffer.visitor()
.
RecordBuffer.add(com.devexperts.qd.DataRecord, int, java.lang.String)
or get visitor via RecordBuffer.visitor()
.
DataVisitor
that adds all records to this buffer.
DataVisitor
that adds at most max
records that
match the specified filter
to this buffer.
RecordBuffer.add(com.devexperts.qd.DataRecord, int, java.lang.String)
or get visitor via RecordBuffer.visitor()
.
RecordBuffer.add(com.devexperts.qd.DataRecord, int, java.lang.String)
.
time = 0
.
MessageVisitor.visitSubscription(SubscriptionProvider provider, MessageType MessageType.STREAM_ADD_SUBSCRIPTION)
instead
MessageVisitor.visitData(DataProvider provider, MessageType MessageType.STREAM_DATA)
instead
MessageVisitor.visitSubscription(SubscriptionProvider provider, MessageType MessageType.STREAM_REMOVE_SUBSCRIPTION)
instead
MessageVisitor.visitSubscription(SubscriptionProvider provider, MessageType MessageType.TICKER_ADD_SUBSCRIPTION)
instead
MessageVisitor.visitData(DataProvider provider, MessageType MessageType.TICKER_DATA)
instead
MessageVisitor.visitSubscription(SubscriptionProvider provider, MessageType MessageType.TICKER_REMOVE_SUBSCRIPTION)
instead
IOUtil.writeByteArray(java.io.DataOutput, byte[])
method instead.
IOUtil.writeUTFChar(java.io.DataOutput, int)
method instead.
IOUtil.writeCharArray(DataOutput, char[])
method instead.
DataIntField.writeInt(BufferedOutput, int)
which is faster.
IOUtil.writeCompactInt(java.io.DataOutput, int)
method instead.
IOUtil.writeCompactLong(java.io.DataOutput, long)
method instead.
DataObjField.writeObj(BufferedOutput, Object)
which is faster.
IOUtil.writeObject(java.io.DataOutput, java.lang.Object)
method instead.
IOUtil.writeCharArray(DataOutput, String)
method instead.
IOUtil.writeUTFString(java.io.DataOutput, java.lang.String)
method instead.
|
|||||||||
PREV NEXT | FRAMES NO FRAMES |