public interface Storage
Modifier and Type | Interface and Description |
---|---|
static interface |
Storage.Message |
Modifier and Type | Method and Description |
---|---|
void |
deleteAccount(java.lang.String uid) |
MsgRange |
getCachedMessagesRange(Topic topic)
Get seq IDs of the stored messages as a MsgRange, inclusive-exclusive [low, hi)
|
java.lang.String |
getDeviceToken() |
<T extends java.util.Iterator<Storage.Message> & java.io.Closeable> |
getLatestMessagePreviews()
Get the latest message in each topic.
|
<T extends Storage.Message> |
getMessageById(long dbMessageId)
Retrieve a single message by database id
|
<T extends Storage.Message> |
getMessagePreviewById(long dbMessageId)
Retrieve a single message preview by database id.
|
java.lang.String |
getMyUid() |
MsgRange |
getNextMissingRange(Topic topic)
Get the maximum seq ID range of the messages missing in cache, inclusive-exclusive [low, hi).
|
MsgRange[] |
getQueuedMessageDeletes(Topic topic,
boolean hard)
Get a list of pending delete message ranges.
|
<T extends java.util.Iterator<Storage.Message> & java.io.Closeable> |
getQueuedMessages(Topic topic)
Get a list of unsent messages.
|
java.lang.String |
getServerURI() |
java.util.Collection<Subscription> |
getSubscriptions(Topic topic)
Get a list o topic subscriptions from DB.
|
boolean |
isReady() |
void |
logout() |
boolean |
msgDelete(Topic topic,
int delId,
int fromId,
int toId)
Delete messages
|
boolean |
msgDelete(Topic topic,
int delId,
MsgRange[] ranges)
Delete messages
|
boolean |
msgDelivered(Topic topic,
long dbMessageId,
java.util.Date timestamp,
int seq)
Message delivered to the server and received a real seq ID.
|
boolean |
msgDiscard(Topic topic,
long dbMessageId)
Delete message by database id.
|
Storage.Message |
msgDraft(Topic topic,
Drafty data,
java.util.Map<java.lang.String,java.lang.Object> head)
Save message to database as a draft.
|
boolean |
msgDraftUpdate(Topic topic,
long dbMessageId,
Drafty data)
Update message draft content without
|
boolean |
msgFailed(Topic topic,
long dbMessageId)
Failed to form or send message.
|
boolean |
msgMarkToDelete(Topic topic,
int fromId,
int toId,
boolean markAsHard)
Mark messages for deletion by range
|
boolean |
msgMarkToDelete(Topic topic,
MsgRange[] ranges,
boolean markAsHard)
Mark messages for deletion by seq ID list
|
boolean |
msgPruneFailed(Topic topic)
Delete all failed messages in the given topis.
|
boolean |
msgReadByRemote(Subscription sub,
int read)
Set read value for a given subscriber
|
boolean |
msgReady(Topic topic,
long dbMessageId,
Drafty data)
Message is ready to be sent to the server.
|
Storage.Message |
msgReceived(Topic topic,
Subscription sub,
MsgServerData msg)
Message received from the server.
|
boolean |
msgRecvByRemote(Subscription sub,
int recv)
Set recv value for a given subscriber
|
Storage.Message |
msgSend(Topic topic,
Drafty data,
java.util.Map<java.lang.String,java.lang.Object> head)
Save message to DB as "sending".
|
boolean |
msgSyncing(Topic topic,
long dbMessageId,
boolean sync)
Message is being sent to the server.
|
void |
saveDeviceToken(java.lang.String token) |
void |
setMyUid(java.lang.String uid,
java.lang.String hostURI) |
boolean |
setRead(Topic topic,
int read)
Local user reported messages as read
|
boolean |
setRecv(Topic topic,
int recv)
Local user reported messages as received
|
void |
setTimeAdjustment(long adjustment) |
long |
subAdd(Topic topic,
Subscription sub)
Add subscription in a generic topic.
|
boolean |
subDelete(Topic topic,
Subscription sub)
Delete existing subscription
|
long |
subNew(Topic topic,
Subscription sub)
Add a new subscriber to topic.
|
boolean |
subUpdate(Topic topic,
Subscription sub)
Update subscription in a generic topic
|
long |
topicAdd(Topic topic) |
boolean |
topicDelete(Topic topic,
boolean hard)
Delete topic
|
Topic |
topicGet(Tinode tinode,
java.lang.String name) |
Topic[] |
topicGetAll(Tinode tinode) |
boolean |
topicUpdate(Topic topic)
Incoming change to topic description: the already mutated topic in memory is synchronized to DB
|
void |
updateCredentials(java.lang.String[] credRequired) |
long |
userAdd(User user)
Insert new user
|
User |
userGet(java.lang.String uid)
Read user description
|
boolean |
userUpdate(User user)
Update existing user
|
java.lang.String getMyUid()
void setMyUid(java.lang.String uid, java.lang.String hostURI)
void updateCredentials(java.lang.String[] credRequired)
void deleteAccount(java.lang.String uid)
java.lang.String getServerURI()
java.lang.String getDeviceToken()
void saveDeviceToken(java.lang.String token)
void logout()
void setTimeAdjustment(long adjustment)
boolean isReady()
long topicAdd(Topic topic)
boolean topicUpdate(Topic topic)
boolean topicDelete(Topic topic, boolean hard)
long subAdd(Topic topic, Subscription sub)
boolean subUpdate(Topic topic, Subscription sub)
long subNew(Topic topic, Subscription sub)
boolean subDelete(Topic topic, Subscription sub)
java.util.Collection<Subscription> getSubscriptions(Topic topic)
User userGet(java.lang.String uid)
long userAdd(User user)
boolean userUpdate(User user)
Storage.Message msgReceived(Topic topic, Subscription sub, MsgServerData msg)
Storage.Message msgSend(Topic topic, Drafty data, java.util.Map<java.lang.String,java.lang.Object> head)
topic
- topic which sent the messagedata
- message data to savehead
- message headersmsgDelivered(Topic topic, long id, Date timestamp, int seq)
Storage.Message msgDraft(Topic topic, Drafty data, java.util.Map<java.lang.String,java.lang.Object> head)
topic
- topic which sent the messagedata
- message data to savehead
- message headersmsgDelivered(Topic topic, long id, Date timestamp, int seq)
boolean msgDraftUpdate(Topic topic, long dbMessageId, Drafty data)
topic
- topic which sent the messagedbMessageId
- database ID of the message.data
- updated content of the message. Must not be null.boolean msgReady(Topic topic, long dbMessageId, Drafty data)
topic
- topic which sent the messagedbMessageId
- database ID of the message.data
- updated content of the message. If null only status is updated.boolean msgSyncing(Topic topic, long dbMessageId, boolean sync)
topic
- topic which sent the messagedbMessageId
- database ID of the message.sync
- true when the sync started, false when it's finished unsuccessfully.boolean msgFailed(Topic topic, long dbMessageId)
topic
- topic which sent the messagedbMessageId
- database ID of the message.boolean msgPruneFailed(Topic topic)
topic
- topic which sent the messageboolean msgDiscard(Topic topic, long dbMessageId)
boolean msgDelivered(Topic topic, long dbMessageId, java.util.Date timestamp, int seq)
topic
- topic which sent the message.dbMessageId
- database ID of the message.timestamp
- server timestamp.seq
- server-issued message seqId.boolean msgMarkToDelete(Topic topic, int fromId, int toId, boolean markAsHard)
boolean msgMarkToDelete(Topic topic, MsgRange[] ranges, boolean markAsHard)
boolean msgDelete(Topic topic, int delId, int fromId, int toId)
boolean msgRecvByRemote(Subscription sub, int recv)
boolean msgReadByRemote(Subscription sub, int read)
MsgRange getCachedMessagesRange(Topic topic)
MsgRange getNextMissingRange(Topic topic)
boolean setRead(Topic topic, int read)
boolean setRecv(Topic topic, int recv)
<T extends Storage.Message> T getMessageById(long dbMessageId)
<T extends Storage.Message> T getMessagePreviewById(long dbMessageId)
<T extends java.util.Iterator<Storage.Message> & java.io.Closeable> T getLatestMessagePreviews()
<T extends java.util.Iterator<Storage.Message> & java.io.Closeable> T getQueuedMessages(Topic topic)