public final class EnqueueingMailAccessCache extends java.lang.Object implements IMailAccessCache
EnqueueingMailAccessCache - A very volatile cache for already connected instances of MailAccess.
A bounded Queue is used to store MailAccess instances to improve subsequent mail requests.
| Modifier and Type | Method and Description |
|---|---|
void |
clearUserEntries(com.openexchange.session.Session session)
Clears the cache entries kept for specified user.
|
void |
close()
Closes this cache.
|
boolean |
containsMailAccess(com.openexchange.session.Session session,
int accountId)
Checks if cache already holds a user-bound mail access for specified account.
|
static EnqueueingMailAccessCache |
getInstance(int queueCapacity)
Gets the singleton instance.
|
static EnqueueingMailAccessCache |
newInstance(int queueCapacity)
Creates a new
EnqueueingMailAccessCache |
int |
numberOfMailAccesses(com.openexchange.session.Session session,
int accountId)
Gets the number of cached, user-bound mail accesses for specified account.
|
boolean |
putMailAccess(com.openexchange.session.Session session,
int accountId,
MailAccess<? extends IMailFolderStorage,? extends IMailMessageStorage> mailAccess)
Puts given mail access into cache if none user-bound connection is already contained in cache.
|
static void |
releaseInstance()
Releases the singleton instance.
|
MailAccess<? extends IMailFolderStorage,? extends IMailMessageStorage> |
removeMailAccess(com.openexchange.session.Session session,
int accountId)
Removes and returns a mail access from cache.
|
public static EnqueueingMailAccessCache newInstance(int queueCapacity) throws com.openexchange.exception.OXException
EnqueueingMailAccessCacheEnqueueingMailAccessCachecom.openexchange.exception.OXException - If initialization failspublic static EnqueueingMailAccessCache getInstance(int queueCapacity) throws com.openexchange.exception.OXException
com.openexchange.exception.OXException - If instance initialization failspublic static void releaseInstance()
public int numberOfMailAccesses(com.openexchange.session.Session session,
int accountId)
throws com.openexchange.exception.OXException
IMailAccessCachenumberOfMailAccesses in interface IMailAccessCachesession - The sessionaccountId - The account IDcom.openexchange.exception.OXExceptionpublic MailAccess<? extends IMailFolderStorage,? extends IMailMessageStorage> removeMailAccess(com.openexchange.session.Session session, int accountId)
removeMailAccess in interface IMailAccessCachesession - The sessionaccountId - The account IDMailAccess or nullpublic boolean putMailAccess(com.openexchange.session.Session session,
int accountId,
MailAccess<? extends IMailFolderStorage,? extends IMailMessageStorage> mailAccess)
putMailAccess in interface IMailAccessCachesession - The sessionaccountId - The account IDmailAccess - The mail access to put into cachetrue if mail access could be successfully cached; otherwise falsepublic boolean containsMailAccess(com.openexchange.session.Session session,
int accountId)
containsMailAccess in interface IMailAccessCachesession - The sessionaccountId - The account IDtrue if a user-bound mail access is already present in cache; otherwise falsepublic void close()
IMailAccessCacheclose in interface IMailAccessCachepublic void clearUserEntries(com.openexchange.session.Session session)
throws com.openexchange.exception.OXException
clearUserEntries in interface IMailAccessCachesession - The sessioncom.openexchange.exception.OXException - If clearing user entries fails