com.devexperts.qd.logger
Class LoggedTicker

java.lang.Object
  extended by com.devexperts.qd.logger.LoggedObject
      extended by com.devexperts.qd.logger.LoggedCollector
          extended by com.devexperts.qd.logger.LoggedTicker
All Implemented Interfaces:
QDCollector, QDTicker, QDStatsContainer, SubscriptionContainer

public class LoggedTicker
extends LoggedCollector
implements QDTicker


Field Summary
 
Fields inherited from class com.devexperts.qd.logger.LoggedObject
log, name
 
Constructor Summary
LoggedTicker(QDLog log, java.lang.String name, QDTicker delegate)
           
 
Method Summary
 boolean examineData(DataVisitor visitor)
          Examines all stored data via specified data visitor.
 void getData(RecordCursor.Owner owner, DataRecord record, int cipher, java.lang.String symbol)
          Gets all data for the specified record, cipher, and symbol in a single call and sets RecordCursor via caller-provided RecordCursor.Owner to the corresponding memory storage in read-only mode.
 void getData(RecordCursor cursor, DataRecord record, int cipher, java.lang.String symbol)
          Gets all data for the specified record, cipher, and symbol in a single call and returns it via caller-provided RecordCursor.
 int getInt(DataIntField field, int cipher, java.lang.String symbol)
          Returns current value of specified Int-field.
 java.lang.Object getObj(DataObjField field, int cipher, java.lang.String symbol)
          Returns current value of specified Obj-field.
 boolean isAvailable(DataRecord record, int cipher, java.lang.String symbol)
          Determines if value of specified record is available.
 boolean isStoreEverything()
          Returns status of "store everything" mode.
 void remove(RecordSource source)
          Removes the corresponding records from the underlying ticker storage.
 void setStoreEverything(boolean store_everything)
          Sets "store everything" mode (disabled by default).
 void setStoreEverythingFilter(SubscriptionFilter filter)
          Sets filter that is used for "store everything" mode.
 
Methods inherited from class com.devexperts.qd.logger.LoggedCollector
createAgent, createAgent, createDistributor, createDistributor, examineSubscription, getContract, getScheme, getStats, getSubscriptionSize, getSymbol, isSubscribed, setErrorHandler
 
Methods inherited from class com.devexperts.qd.logger.LoggedObject
child, debug, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.devexperts.qd.QDCollector
createAgent, createAgent, createDistributor, createDistributor, getContract, getScheme, getSymbol, setErrorHandler
 
Methods inherited from interface com.devexperts.qd.SubscriptionContainer
examineSubscription, getSubscriptionSize, isSubscribed
 
Methods inherited from interface com.devexperts.qd.stats.QDStatsContainer
getStats
 

Constructor Detail

LoggedTicker

public LoggedTicker(QDLog log,
                    java.lang.String name,
                    QDTicker delegate)
Method Detail

isStoreEverything

public boolean isStoreEverything()
Description copied from interface: QDTicker
Returns status of "store everything" mode.

Specified by:
isStoreEverything in interface QDTicker
See Also:
QDTicker.setStoreEverything(boolean)

setStoreEverything

public void setStoreEverything(boolean store_everything)
Description copied from interface: QDTicker
Sets "store everything" mode (disabled by default). In this mode processData stores everything into underlying storage regardless of subscription (by default only records that are subscribed on are being stored). When subscription is removed records are not removed from storage (by default they are). Only records that match specified filter are subject to this mode (all records by default).

Specified by:
setStoreEverything in interface QDTicker

setStoreEverythingFilter

public void setStoreEverythingFilter(SubscriptionFilter filter)
Description copied from interface: QDTicker
Sets filter that is used for "store everything" mode. Use null (default) to turn off filtering and store all records when "store everything" mode is on.

Specified by:
setStoreEverythingFilter in interface QDTicker
See Also:
QDTicker.setStoreEverything(boolean)

isAvailable

public boolean isAvailable(DataRecord record,
                           int cipher,
                           java.lang.String symbol)
Description copied from interface: QDTicker
Determines if value of specified record is available.

Specified by:
isAvailable in interface QDTicker

getInt

public int getInt(DataIntField field,
                  int cipher,
                  java.lang.String symbol)
Description copied from interface: QDTicker
Returns current value of specified Int-field. Returns 0 if such value does not exist or is unknown.

Specified by:
getInt in interface QDTicker

getObj

public java.lang.Object getObj(DataObjField field,
                               int cipher,
                               java.lang.String symbol)
Description copied from interface: QDTicker
Returns current value of specified Obj-field. Returns null if such value does not exist or is unknown.

Specified by:
getObj in interface QDTicker

getData

public void getData(RecordCursor cursor,
                    DataRecord record,
                    int cipher,
                    java.lang.String symbol)
Description copied from interface: QDTicker
Gets all data for the specified record, cipher, and symbol in a single call and returns it via caller-provided RecordCursor.

Specified by:
getData in interface QDTicker

getData

public void getData(RecordCursor.Owner owner,
                    DataRecord record,
                    int cipher,
                    java.lang.String symbol)
Description copied from interface: QDTicker
Gets all data for the specified record, cipher, and symbol in a single call and sets RecordCursor via caller-provided RecordCursor.Owner to the corresponding memory storage in read-only mode. This way, any fields can be retried from ticker without requiring any actual data copy or memory allocation.

Specified by:
getData in interface QDTicker

examineData

public boolean examineData(DataVisitor visitor)
Description copied from interface: QDTicker
Examines all stored data via specified data visitor. Returns true if some data was not examined or false if everything was examined.

Specified by:
examineData in interface QDTicker

remove

public void remove(RecordSource source)
Description copied from interface: QDTicker
Removes the corresponding records from the underlying ticker storage. Removal is performed under global lock on the ticker storage and only for records whose contents exactly (identity-wise) match the given source. Unless the record arrives again, QDTicker.isAvailable(com.devexperts.qd.DataRecord, int, java.lang.String) will become false for all removed records.

This method is designed to facilitate cleanup of stale data. Intended pattern for this method is to call QDTicker.examineData(com.devexperts.qd.DataVisitor), store stale records to be removed into RecordBuffer and use QDTicker.remove(com.devexperts.qd.ng.RecordSource) for them.

Specified by:
remove in interface QDTicker