public final class SingletonMailAccessCache extends java.lang.Object implements IMailAccessCache
SingletonMailAccessCache
- A very volatile cache for already connected instances of MailAccess
.
Only one mail access can be cached per user and is dedicated to fasten sequential 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 SingletonMailAccessCache |
getInstance()
Gets the singleton instance.
|
void |
initCache()
Initializes cache reference.
|
static SingletonMailAccessCache |
newInstance()
Creates a new
SingletonMailAccessCache |
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.
|
void |
releaseCache()
Releases cache reference.
|
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 SingletonMailAccessCache newInstance() throws com.openexchange.exception.OXException
SingletonMailAccessCache
SingletonMailAccessCache
com.openexchange.exception.OXException
- If initialization failspublic static SingletonMailAccessCache getInstance() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If instance initialization failspublic static void releaseInstance()
public void initCache() throws com.openexchange.exception.OXException
com.openexchange.exception.OXException
- If initializing the time-out map reference failspublic void close()
IMailAccessCache
close
in interface IMailAccessCache
public void releaseCache()
public int numberOfMailAccesses(com.openexchange.session.Session session, int accountId) throws com.openexchange.exception.OXException
IMailAccessCache
numberOfMailAccesses
in interface IMailAccessCache
session
- The sessionaccountId
- The account IDcom.openexchange.exception.OXException
public MailAccess<? extends IMailFolderStorage,? extends IMailMessageStorage> removeMailAccess(com.openexchange.session.Session session, int accountId)
removeMailAccess
in interface IMailAccessCache
session
- The sessionaccountId
- The account IDMailAccess
or null
public boolean putMailAccess(com.openexchange.session.Session session, int accountId, MailAccess<? extends IMailFolderStorage,? extends IMailMessageStorage> mailAccess)
putMailAccess
in interface IMailAccessCache
session
- The sessionaccountId
- The account IDmailAccess
- The mail access to put into cachetrue
if mail access could be successfully cached; otherwise false
public boolean containsMailAccess(com.openexchange.session.Session session, int accountId)
containsMailAccess
in interface IMailAccessCache
session
- The sessionaccountId
- The account IDtrue
if a user-bound mail access is already present in cache; otherwise false
public void clearUserEntries(com.openexchange.session.Session session) throws com.openexchange.exception.OXException
clearUserEntries
in interface IMailAccessCache
session
- The sessioncom.openexchange.exception.OXException
- If clearing user entries fails