Package deltix.qsrv.hf.tickdb.pub
Class InstrumentMessageSourceAdapter
- java.lang.Object
-
- deltix.qsrv.hf.tickdb.pub.MessageSourceAdapter<deltix.qsrv.hf.pub.InstrumentMessage>
-
- deltix.qsrv.hf.tickdb.pub.InstrumentMessageSourceAdapter
-
- All Implemented Interfaces:
deltix.data.stream.MessageSource<deltix.qsrv.hf.pub.InstrumentMessage>
,RealTimeMessageSource<deltix.qsrv.hf.pub.InstrumentMessage>
,EntityAndTypeSubscriptionController
,EntitySubscriptionController
,InstrumentMessageSource
,MessageInfo
,StreamSubscriptionController
,SubscriptionController
,SymbolAndTypeSubscriptionController
,SymbolSubscriptionController
,TimeController
,TypedMessageSource
,TypeSubscriptionController
,deltix.util.concurrent.AbstractCursor
,deltix.util.concurrent.IntermittentlyAvailableResource
,deltix.util.lang.Disposable
,java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
LimitedInstrumentMessageSource
,SubscriptionManagerWrapper
public class InstrumentMessageSourceAdapter extends MessageSourceAdapter<deltix.qsrv.hf.pub.InstrumentMessage> implements InstrumentMessageSource
Utility classes that delegates InstrumentMessageSource interface
-
-
Constructor Summary
Constructors Constructor Description InstrumentMessageSourceAdapter(InstrumentMessageSource delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, java.lang.String[] types)
Add the specified entities and types to subscription.void
add(java.lang.CharSequence[] symbols, java.lang.String[] types)
Add symbols of certain types to the subscription.void
addEntities(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, int offset, int length)
Bulk add the specified entities to subscription.void
addEntity(deltix.qsrv.hf.pub.InstrumentIdentity id)
Add the specified entity to subscription.void
addStream(TickStream... tickStreams)
Add streams to subscription.void
addSymbol(java.lang.CharSequence symbol)
Add symbol to the subscription.void
addSymbols(java.lang.CharSequence[] symbols)
Add array of symbols to the subscription.void
addSymbols(java.lang.CharSequence[] symbols, int offset, int length)
Add array of symbols to the subscription from indexoffset
to indexoffset + length
.void
addTypes(java.lang.String... names)
Add the specified type names to subscription.void
clearAllEntities()
Switch to selective subscription mode (if necessary) and clear the list.void
clearAllSymbols()
Unsubscribe all symbols.void
close()
int
getCurrentEntityIndex()
Return a small number identifying the returned entity.TickStream
getCurrentStream()
Return the current stream instance, unless it has been removed, in which case null is returned.int
getCurrentStreamIndex()
Return the index of the stream that is the source of the current message.java.lang.String
getCurrentStreamKey()
Return the key of the stream that is the source of the current message.RecordClassDescriptor
getCurrentType()
Returns the type of the current message.int
getCurrentTypeIndex()
Returns the type index of the current message.protected InstrumentMessageSource
getDelegate()
deltix.qsrv.hf.pub.InstrumentMessage
getMessage()
Returns the current message.boolean
isAtEnd()
boolean
isClosed()
boolean
isRealTime()
boolean
next()
boolean
realTimeAvailable()
void
remove(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, java.lang.String[] types)
Remove the specified entities and types from subscription.void
remove(java.lang.CharSequence[] symbols, java.lang.String[] types)
Remove symbols of certain types from the subscription.void
removeAllStreams()
Remove all streams from subscription.void
removeEntities(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, int offset, int length)
Remove the specified entities from subscription.void
removeEntity(deltix.qsrv.hf.pub.InstrumentIdentity id)
Remove the specified entity from subscription.void
removeStream(TickStream... tickStreams)
Remove streams from subscription.void
removeSymbol(java.lang.CharSequence symbol)
Remove symbol from the subscription.void
removeSymbols(java.lang.CharSequence[] symbols)
Remove array of symbols from the subscription.void
removeSymbols(java.lang.CharSequence[] symbols, int offset, int length)
Remove array of symbols from the subscription from indexoffset
to indexoffset + length
.void
removeTypes(java.lang.String... names)
Remove the specified types from subscription.void
reset(long time)
Reposition the message source to a new point in time, while preserving current subscription.void
setAvailabilityListener(java.lang.Runnable maybeAvailable)
void
setTimeForNewSubscriptions(long time)
This method affects subsequent "add subscription" methods, such as, for instance, addEntity ().void
setTypes(java.lang.String... names)
Subscribe to specified types.void
subscribeToAllEntities()
Subscribe to all available entities.void
subscribeToAllSymbols()
Subscribe to all present symbols.void
subscribeToAllTypes()
Subscribe to all available types (no filtering).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface deltix.qsrv.hf.tickdb.pub.query.EntitySubscriptionController
addEntities, removeEntities
-
-
-
-
Constructor Detail
-
InstrumentMessageSourceAdapter
public InstrumentMessageSourceAdapter(InstrumentMessageSource delegate)
-
-
Method Detail
-
getDelegate
protected InstrumentMessageSource getDelegate()
- Overrides:
getDelegate
in classMessageSourceAdapter<deltix.qsrv.hf.pub.InstrumentMessage>
-
getMessage
public deltix.qsrv.hf.pub.InstrumentMessage getMessage()
Description copied from interface:MessageInfo
Returns the current message.- Specified by:
getMessage
in interfaceInstrumentMessageSource
- Specified by:
getMessage
in interfaceMessageInfo
- Specified by:
getMessage
in interfacedeltix.data.stream.MessageSource<deltix.qsrv.hf.pub.InstrumentMessage>
- Overrides:
getMessage
in classMessageSourceAdapter<deltix.qsrv.hf.pub.InstrumentMessage>
-
isClosed
public boolean isClosed()
- Specified by:
isClosed
in interfaceInstrumentMessageSource
-
next
public boolean next()
- Specified by:
next
in interfacedeltix.util.concurrent.AbstractCursor
- Overrides:
next
in classMessageSourceAdapter<deltix.qsrv.hf.pub.InstrumentMessage>
-
isAtEnd
public boolean isAtEnd()
- Specified by:
isAtEnd
in interfacedeltix.util.concurrent.AbstractCursor
- Overrides:
isAtEnd
in classMessageSourceAdapter<deltix.qsrv.hf.pub.InstrumentMessage>
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfacedeltix.util.lang.Disposable
- Overrides:
close
in classMessageSourceAdapter<deltix.qsrv.hf.pub.InstrumentMessage>
-
subscribeToAllEntities
public void subscribeToAllEntities()
Description copied from interface:EntitySubscriptionController
Subscribe to all available entities.- Specified by:
subscribeToAllEntities
in interfaceEntitySubscriptionController
-
clearAllEntities
public void clearAllEntities()
Description copied from interface:EntitySubscriptionController
Switch to selective subscription mode (if necessary) and clear the list.- Specified by:
clearAllEntities
in interfaceEntitySubscriptionController
-
addEntity
public void addEntity(deltix.qsrv.hf.pub.InstrumentIdentity id)
Description copied from interface:EntitySubscriptionController
Add the specified entity to subscription. The type and symbol are copied from the incoming object, if necessary, so the argument can be re-used after the call. Special note about options: The following fragment will subscribe to specific option contract "DAV 100417P00085000":addEntity(new InstrumentKey(InstrumentType.OPTION, "DAV 100417P00085000"));
While the following will subscribe to option root (and you will get all instruments with this root):addEntity(new InstrumentKey(InstrumentType.OPTION, "DAV "));
- Specified by:
addEntity
in interfaceEntitySubscriptionController
-
addEntities
public void addEntities(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, int offset, int length)
Description copied from interface:EntitySubscriptionController
Bulk add the specified entities to subscription. The type and symbol are copied from the incoming objects, if necessary, so the arguments can be re-used after the call.- Specified by:
addEntities
in interfaceEntitySubscriptionController
-
removeEntity
public void removeEntity(deltix.qsrv.hf.pub.InstrumentIdentity id)
Description copied from interface:EntitySubscriptionController
Remove the specified entity from subscription. The type and symbol are copied from the incoming object, if necessary, so the argument can be re-used after the call.- Specified by:
removeEntity
in interfaceEntitySubscriptionController
-
removeEntities
public void removeEntities(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, int offset, int length)
Description copied from interface:EntitySubscriptionController
Remove the specified entities from subscription. The type and symbol are copied from the incoming objects, if necessary, so the arguments can be re-used after the call.- Specified by:
removeEntities
in interfaceEntitySubscriptionController
-
addStream
public void addStream(TickStream... tickStreams)
Description copied from interface:StreamSubscriptionController
Add streams to subscription. Current time and filter is used to query data from new sources.- Specified by:
addStream
in interfaceStreamSubscriptionController
- Parameters:
tickStreams
- Streams to add.
-
removeAllStreams
public void removeAllStreams()
Description copied from interface:StreamSubscriptionController
Remove all streams from subscription.- Specified by:
removeAllStreams
in interfaceStreamSubscriptionController
-
removeStream
public void removeStream(TickStream... tickStreams)
Description copied from interface:StreamSubscriptionController
Remove streams from subscription.- Specified by:
removeStream
in interfaceStreamSubscriptionController
- Parameters:
tickStreams
- Streams to remove.
-
subscribeToAllTypes
public void subscribeToAllTypes()
Description copied from interface:TypeSubscriptionController
Subscribe to all available types (no filtering).- Specified by:
subscribeToAllTypes
in interfaceTypeSubscriptionController
-
setTypes
public void setTypes(java.lang.String... names)
Description copied from interface:TypeSubscriptionController
Subscribe to specified types.- Specified by:
setTypes
in interfaceTypeSubscriptionController
-
addTypes
public void addTypes(java.lang.String... names)
Description copied from interface:TypeSubscriptionController
Add the specified type names to subscription.- Specified by:
addTypes
in interfaceTypeSubscriptionController
-
removeTypes
public void removeTypes(java.lang.String... names)
Description copied from interface:TypeSubscriptionController
Remove the specified types from subscription.- Specified by:
removeTypes
in interfaceTypeSubscriptionController
-
add
public void add(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, java.lang.String[] types)
Description copied from interface:EntityAndTypeSubscriptionController
Add the specified entities and types to subscription. The type and symbol are copied from the incoming object, if necessary, so the argument can be re-used after the call.- Specified by:
add
in interfaceEntityAndTypeSubscriptionController
- Parameters:
ids
- not-null array of instruments to subscribe.types
- not-null array of type names to subscribe.
-
remove
public void remove(deltix.qsrv.hf.pub.InstrumentIdentity[] ids, java.lang.String[] types)
Description copied from interface:EntityAndTypeSubscriptionController
Remove the specified entities and types from subscription. The type and symbol are copied from the incoming objects, if necessary, so the arguments can be re-used after the call.- Specified by:
remove
in interfaceEntityAndTypeSubscriptionController
- Parameters:
ids
- not-null array of instruments to subscribe.types
- not-null array of type names to subscribe.
-
add
public void add(java.lang.CharSequence[] symbols, java.lang.String[] types)
Description copied from interface:SymbolAndTypeSubscriptionController
Add symbols of certain types to the subscription.- Specified by:
add
in interfaceSymbolAndTypeSubscriptionController
- Parameters:
symbols
- symbols notationstypes
- types (full names)
-
remove
public void remove(java.lang.CharSequence[] symbols, java.lang.String[] types)
Description copied from interface:SymbolAndTypeSubscriptionController
Remove symbols of certain types from the subscription.- Specified by:
remove
in interfaceSymbolAndTypeSubscriptionController
- Parameters:
symbols
- symbols notationstypes
- types (full names)
-
subscribeToAllSymbols
public void subscribeToAllSymbols()
Description copied from interface:SymbolSubscriptionController
Subscribe to all present symbols.- Specified by:
subscribeToAllSymbols
in interfaceSymbolSubscriptionController
-
clearAllSymbols
public void clearAllSymbols()
Description copied from interface:SymbolSubscriptionController
Unsubscribe all symbols.- Specified by:
clearAllSymbols
in interfaceSymbolSubscriptionController
-
addSymbol
public void addSymbol(java.lang.CharSequence symbol)
Description copied from interface:SymbolSubscriptionController
Add symbol to the subscription.- Specified by:
addSymbol
in interfaceSymbolSubscriptionController
- Parameters:
symbol
- symbol to be added
-
addSymbols
public void addSymbols(java.lang.CharSequence[] symbols, int offset, int length)
Description copied from interface:SymbolSubscriptionController
Add array of symbols to the subscription from indexoffset
to indexoffset + length
.- Specified by:
addSymbols
in interfaceSymbolSubscriptionController
- Parameters:
symbols
- array of symbols to be added to subscriptionoffset
- start indexlength
- length of symbols to be added
-
removeSymbol
public void removeSymbol(java.lang.CharSequence symbol)
Description copied from interface:SymbolSubscriptionController
Remove symbol from the subscription.- Specified by:
removeSymbol
in interfaceSymbolSubscriptionController
- Parameters:
symbol
- symbol to be removed
-
removeSymbols
public void removeSymbols(java.lang.CharSequence[] symbols, int offset, int length)
Description copied from interface:SymbolSubscriptionController
Remove array of symbols from the subscription from indexoffset
to indexoffset + length
.- Specified by:
removeSymbols
in interfaceSymbolSubscriptionController
- Parameters:
symbols
- array of symbols to be removedoffset
- start indexlength
- length of symbols to be removed
-
addSymbols
public void addSymbols(java.lang.CharSequence[] symbols)
Description copied from interface:SymbolSubscriptionController
Add array of symbols to the subscription.- Specified by:
addSymbols
in interfaceSymbolSubscriptionController
- Parameters:
symbols
- symbols to be added
-
removeSymbols
public void removeSymbols(java.lang.CharSequence[] symbols)
Description copied from interface:SymbolSubscriptionController
Remove array of symbols from the subscription.- Specified by:
removeSymbols
in interfaceSymbolSubscriptionController
- Parameters:
symbols
- symbols to be removed
-
setTimeForNewSubscriptions
public void setTimeForNewSubscriptions(long time)
Description copied from interface:TimeController
This method affects subsequent "add subscription" methods, such as, for instance, addEntity (). New subscriptions start at the specified time.- Specified by:
setTimeForNewSubscriptions
in interfaceTimeController
- Parameters:
time
- The time to use, orTimeConstants.USE_CURRENT_TIME
to use server's system time, orTimeConstants.USE_CURSOR_TIME
to use cursor's last read time.
-
reset
public void reset(long time)
Description copied from interface:TimeController
Reposition the message source to a new point in time, while preserving current subscription.- Specified by:
reset
in interfaceTimeController
- Parameters:
time
- The new position in time.
-
getCurrentStreamIndex
public int getCurrentStreamIndex()
Description copied from interface:MessageInfo
Return the index of the stream that is the source of the current message.- Specified by:
getCurrentStreamIndex
in interfaceMessageInfo
- Returns:
- The current message source stream's index.
-
getCurrentStreamKey
public java.lang.String getCurrentStreamKey()
Description copied from interface:MessageInfo
Return the key of the stream that is the source of the current message.- Specified by:
getCurrentStreamKey
in interfaceMessageInfo
- Returns:
- The source stream key.
-
getCurrentStream
public TickStream getCurrentStream()
Description copied from interface:MessageInfo
Return the current stream instance, unless it has been removed, in which case null is returned.- Specified by:
getCurrentStream
in interfaceMessageInfo
-
getCurrentEntityIndex
public int getCurrentEntityIndex()
Description copied from interface:MessageInfo
Return a small number identifying the returned entity. This number is unique throughout the life of the message source. Removing entities from subscription does not create reusable holes in the "space" of entity indexes.- Specified by:
getCurrentEntityIndex
in interfaceMessageInfo
- See Also:
EntitySubscriptionController
-
getCurrentTypeIndex
public int getCurrentTypeIndex()
Description copied from interface:TypedMessageSource
Returns the type index of the current message.- Specified by:
getCurrentTypeIndex
in interfaceTypedMessageSource
- Returns:
- The current message type index.
-
getCurrentType
public RecordClassDescriptor getCurrentType()
Description copied from interface:TypedMessageSource
Returns the type of the current message.- Specified by:
getCurrentType
in interfaceTypedMessageSource
- Returns:
- The current message type.
-
setAvailabilityListener
public void setAvailabilityListener(java.lang.Runnable maybeAvailable)
- Specified by:
setAvailabilityListener
in interfacedeltix.util.concurrent.IntermittentlyAvailableResource
-
isRealTime
public boolean isRealTime()
- Specified by:
isRealTime
in interfaceRealTimeMessageSource<deltix.qsrv.hf.pub.InstrumentMessage>
- Returns:
- true if this source already switched from historical to real-time data portion
-
realTimeAvailable
public boolean realTimeAvailable()
- Specified by:
realTimeAvailable
in interfaceRealTimeMessageSource<deltix.qsrv.hf.pub.InstrumentMessage>
- Returns:
- true if source can be switched in real-time.
When realtime mode is available client can use method
RealTimeMessageSource.isRealTime()
()} to detect switch from historical to real-time portion of data. Also in this mode client will receive special messageRealTimeStartMessage
.
-
-