Package com.illumon.iris.db.v2.remote
Interface SubscribableTable
- All Known Implementing Classes:
PreemptiveUpdatesTable
,SubscriptionSnapshotTable
public interface SubscribableTable
This is a base interface for the RemoteQueryProcessor
to use
for exporting tables that you can subscribe to i.e. Table.supportsPreemptiveSubscription()
will return true.
Presently, that means you are one of the following:
- A viewport, which means locally we are an
PreemptiveUpdatesTable
, and send deltas for rows that are within a clients viewport. - A snapshot viewport, which means locally we are an
SubscriptionSnapshotTable
, and send entire snapshots for rows that are within a clients viewport. - A
PreemptiveUpdatesTable
that is fully subscribed, which means the client has a consistent view that can be used from query operations.
On the client side, these are all represented by a ReplicatedTable, but they have different semantics.
-
Method Summary
Modifier and Type Method Description boolean
addSubscription(com.fishlib.net.api.CommandSender client, int handleId, BitSet columnsToSubscribe, boolean isViewport)
Add a subscription to this table.boolean
isSnapshot()
True if this table is a snapshot table (as opposed to a preemptive updates table); used byRemoteQueryProcessor
to set the isSnapshot flag onExportedTableCreationMessage
messages, so that a client knows if it has an appropriate type of table for its viewport.boolean
removeSubscription(com.fishlib.net.api.CommandSender client, int subscriptionId)
Remove a subscription.boolean
updateSubscription(com.fishlib.net.api.CommandSender client, int subscriptionId, BitSet newSubscribedColumns)
Update the subscription's columns.boolean
updateViewport(com.fishlib.net.api.CommandSender client, int subscriptionId, Index newViewPort)
Update the subscription's viewport (rows).boolean
updateViewportAndColumns(com.fishlib.net.api.CommandSender client, int subscriptionId, Index newViewPort, BitSet columnsToSubscribe)
Update the subscription's columns and viewport (rows).
-
Method Details
-
addSubscription
boolean addSubscription(com.fishlib.net.api.CommandSender client, int handleId, BitSet columnsToSubscribe, boolean isViewport)Add a subscription to this table.- Parameters:
client
- the client requesting the subscription, used to uniquely identify he handleId and send deltas, snapshots and responseshandleId
- the ID of our subscriptioncolumnsToSubscribe
- the bitset of columns to subscribe toisViewport
- true if the subscription is a viewport, false if it is a full subscription- Returns:
- true if the subscription was added
-
updateSubscription
boolean updateSubscription(com.fishlib.net.api.CommandSender client, int subscriptionId, BitSet newSubscribedColumns)Update the subscription's columns.- Parameters:
client
- the client requesting the subscription, used to send deltas, snapshots and responsessubscriptionId
- the ID of our subscriptionnewSubscribedColumns
- the bitset of columns to subscribe to- Returns:
- true if the subscription was found and updated
-
updateViewport
boolean updateViewport(com.fishlib.net.api.CommandSender client, int subscriptionId, Index newViewPort)Update the subscription's viewport (rows).- Parameters:
client
- the client requesting the subscription, used to send deltas, snapshots and responsessubscriptionId
- the ID of our subscriptionnewViewPort
- the index representing which rows to subscribe to (in position space)- Returns:
- true if the subscription was found and updated
-
updateViewportAndColumns
boolean updateViewportAndColumns(com.fishlib.net.api.CommandSender client, int subscriptionId, Index newViewPort, BitSet columnsToSubscribe)Update the subscription's columns and viewport (rows).- Parameters:
client
- the client requesting the subscription, used to send deltas, snapshots and responsessubscriptionId
- the ID of our subscriptionnewViewPort
- the index representing which rows to subscribe to (in position space)columnsToSubscribe
- the bitset of columns to subscribe to- Returns:
- true if the subscription was found and updated
-
removeSubscription
boolean removeSubscription(com.fishlib.net.api.CommandSender client, int subscriptionId)Remove a subscription.- Parameters:
client
- the client requesting the subscription, used to send responsessubscriptionId
- the ID of our subscription- Returns:
- true if the subscription was found and updated
-
isSnapshot
boolean isSnapshot()True if this table is a snapshot table (as opposed to a preemptive updates table); used byRemoteQueryProcessor
to set the isSnapshot flag onExportedTableCreationMessage
messages, so that a client knows if it has an appropriate type of table for its viewport.- Returns:
- true if this is a subscription snapshot table.
-