public synchronized void clearStaleBuffers(long now) { if (lastCheck + DELAY_BETWEEN_CLEARING_STALE_BUFFERS > now) { return; } lastCheck = now; while (head.value != null && isEntryStale(head, now)) { removeHead(); } }
private void moveToTail(Entry e) { unlink(e); linkBeforeTail(e); }
public CyclicBuffer<E> getOrCreate(String key, long timestamp) { Entry existing = map.get(key); if (existing == null) { return processNewEntry(key, timestamp); } else { existing.setTimestamp(timestamp); moveToTail(existing); return existing.value; } }
private CyclicBuffer<E> processNewEntry(String key, long timestamp) { CyclicBuffer<E> cb = new CyclicBuffer<E>(bufferSize); Entry entry = new Entry(key, cb, timestamp); map.put(key, entry); bufferCount++; linkBeforeTail(entry); if (bufferCount >= maxNumBuffers) { removeHead(); } return cb; }
public void removeBuffer(String key) { Entry existing = map.get(key); if (existing != null) { bufferCount--; map.remove(key); unlink(existing); CyclicBuffer<E> cb = existing.value; if(cb != null) { cb.clear(); } } }
/** * Start the appender */ public void start() { if (cbTracker == null) { cbTracker = new CyclicBufferTrackerImpl<E>(); } Session session = null; if (sessionViaJNDI) session = lookupSessionInJNDI(); else session = buildSessionFromProperties(); if (session == null) { addError("Failed to obtain javax.mail.Session. Cannot start."); return; } mimeMsg = new MimeMessage(session); try { if (from != null) { mimeMsg.setFrom(getAddress(from)); } else { mimeMsg.setFrom(); } subjectLayout = makeSubjectLayout(subjectStr); started = true; } catch (MessagingException e) { addError("Could not activate SMTPAppender options.", e); } }
private CyclicBuffer<E> processNewEntry(String key, long timestamp) { CyclicBuffer<E> cb = new CyclicBuffer<E>(bufferSize); Entry entry = new Entry(key, cb, timestamp); map.put(key, entry); bufferCount++; linkBeforeTail(entry); if (bufferCount >= maxNumBuffers) { removeHead(); } return cb; }
public void removeBuffer(String key) { Entry existing = map.get(key); if (existing != null) { bufferCount--; map.remove(key); unlink(existing); CyclicBuffer<E> cb = existing.value; if(cb != null) { cb.clear(); } } }
/** * Start the appender */ public void start() { if (cbTracker == null) { cbTracker = new CyclicBufferTrackerImpl<E>(); } Session session = null; if (sessionViaJNDI) session = lookupSessionInJNDI(); else session = buildSessionFromProperties(); if (session == null) { addError("Failed to obtain javax.mail.Session. Cannot start."); return; } mimeMsg = new MimeMessage(session); try { if (from != null) { mimeMsg.setFrom(getAddress(from)); } else { mimeMsg.setFrom(); } subjectLayout = makeSubjectLayout(subjectStr); started = true; } catch (MessagingException e) { addError("Could not activate SMTPAppender options.", e); } }
public CyclicBuffer<E> getOrCreate(String key, long timestamp) { Entry existing = map.get(key); if (existing == null) { return processNewEntry(key, timestamp); } else { existing.setTimestamp(timestamp); moveToTail(existing); return existing.value; } }
private void moveToTail(Entry e) { unlink(e); linkBeforeTail(e); }
public synchronized void clearStaleBuffers(long now) { if (lastCheck + DELAY_BETWEEN_CLEARING_STALE_BUFFERS > now) { return; } lastCheck = now; while (head.value != null && isEntryStale(head, now)) { removeHead(); } }