Package tigase.server.amp.db
Class MsgRepository<T,S extends DataSource>
java.lang.Object
tigase.server.amp.db.MsgRepository<T,S>
- All Implemented Interfaces:
DataSourceAware<S>,MsgRepositoryIfc<S>,OfflineMsgRepositoryIfc,Repository
- Direct Known Subclasses:
JDBCMsgRepository,XMLMsgRepository
public abstract class MsgRepository<T,S extends DataSource>
extends Object
implements MsgRepositoryIfc<S>
- Author:
- andrzej
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic classstatic classBean used to provide MsgRepository implementationsstatic interfaceDeprecated.static interfaceNested classes/interfaces inherited from interface tigase.db.Repository
Repository.Meta, Repository.SchemaId -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected AtomicIntegerprotected longprotected DelayQueue<MsgRepository.MsgDBItem<T>> protected static final intstatic final Stringstatic final Stringprotected SimpleParser -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voiddeleteMessage(T db_id) abstract intdeleteMessagesToJID(List<String> db_ids, XMPPResourceConnection session) static MsgRepositoryIfcgetInstance(String cls, String id_string) getMessageExpired(long time, boolean delete) Deprecated.protected longgetMsgsStoreLimit(BareJID userJid, NonAuthUserRepository userRepo) voidinitRepository(String conn_str, Map<String, String> map) Deprecated.protected abstract voidloadExpiredQueue(int max) Deprecated.protected abstract voidloadExpiredQueue(Date expired) Deprecated.loadMessagesToJID(List<String> db_ids, XMPPResourceConnection session, boolean delete, MsgRepository.OfflineMessagesProcessor proc) voidsetCondition(ReentrantLock lock, Condition condition) Deprecated.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface tigase.db.DataSourceAware
setDataSourceMethods inherited from interface tigase.db.MsgRepositoryIfc
getMessagesCount, getMessagesListMethods inherited from interface tigase.db.OfflineMsgRepositoryIfc
loadMessagesToJID, storeMessage
-
Field Details
-
OFFLINE_MSGS_KEY
- See Also:
-
MSGS_STORE_LIMIT_KEY
- See Also:
-
MAX_QUEUE_SIZE
protected static final int MAX_QUEUE_SIZE- See Also:
-
awaitingInExpiredQueue
-
earliestOffline
protected long earliestOffline -
parser
-
expiredQueue
-
-
Constructor Details
-
MsgRepository
public MsgRepository()
-
-
Method Details
-
getInstance
- Throws:
TigaseDBException
-
loadMessagesToJID
public abstract Queue<Element> loadMessagesToJID(List<String> db_ids, XMPPResourceConnection session, boolean delete, MsgRepository.OfflineMessagesProcessor proc) throws UserNotFoundException - Specified by:
loadMessagesToJIDin interfaceMsgRepositoryIfc<T>- Throws:
UserNotFoundException
-
deleteMessagesToJID
public abstract int deleteMessagesToJID(List<String> db_ids, XMPPResourceConnection session) throws UserNotFoundException - Specified by:
deleteMessagesToJIDin interfaceMsgRepositoryIfc<T>- Throws:
UserNotFoundException
-
initRepository
@Deprecated public void initRepository(String conn_str, Map<String, String> map) throws DBInitExceptionDeprecated.Description copied from interface:RepositoryMethod is deprecated and should not be user any more.
The method is called to initialize the data repository. Depending on the implementation all the initialization parameters can be passed either viaresource_uriparameter as the database connection string or viaparamsmap if the required repository parameters are more complex or both.- Specified by:
initRepositoryin interfaceRepository- Parameters:
conn_str- value in most cases representing the database connection string.map- is aMapwith repository properties necessary to initialize and perform all the functions. The initialization parameters are implementation dependent.- Throws:
DBInitException- if there was an error during repository initialization. Some implementations, though, perform so called lazy initialization so even though there is a problem with the underlying repository it may not be signaled through this method call.
-
getMessageExpired
Deprecated.Description copied from interface:OfflineMsgRepositoryIfcLoads head of the payloads queue which holds items that would be expired after stated time with an option to delete them from repository after being retrieved. This is blocking method, which means if there is not data to return, implementation should block the call until data is available.- Specified by:
getMessageExpiredin interfaceOfflineMsgRepositoryIfc- Parameters:
time- time in milliseconds representing time after which given message would be considered as expireddelete- boolean parameter controlling whether messages should be removed from repository after they retrieved.- Returns:
- head of the payloads queue which holds items that would be expired after stated time with an option to delete them from repository after being retrieved.
-
setCondition
Deprecated.- Specified by:
setConditionin interfaceMsgRepositoryIfc<T>
-
loadExpiredQueue
Deprecated. -
loadExpiredQueue
Deprecated. -
deleteMessage
-
getMsgsStoreLimit
protected long getMsgsStoreLimit(BareJID userJid, NonAuthUserRepository userRepo) throws UserNotFoundException - Throws:
UserNotFoundException
-