📄 spoolrepository.java
字号:
/*********************************************************************** * Copyright (c) 1999-2004 The Apache Software Foundation. * * All rights reserved. * * ------------------------------------------------------------------- * * Licensed under the Apache License, Version 2.0 (the "License"); you * * may not use this file except in compliance with the License. You * * may obtain a copy of the License at: * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * * implied. See the License for the specific language governing * * permissions and limitations under the License. * ***********************************************************************/package org.apache.james.services;import org.apache.mailet.Mail;/** * Interface for a Repository for Spooling Mails. * A spool repository is a transitory repository which should empty itself * if inbound deliveries stop. * * @version 1.0.0, 24/04/1999 */public interface SpoolRepository extends MailRepository { /** * Implementations of AcceptFilter can be used to select which mails a SpoolRepository * implementation returns from its accept (AcceptFilter) method **/ public static interface AcceptFilter { /** * This method is called by accept(Filter) to determine if the message is * ready for delivery. * * @param key message key * @param state the state of the message * @param lastUpdated the last time the message was written to the spool * @param errorMessage the current errorMessage * @return true if the message is ready for delivery **/ boolean accept (String key, String state, long lastUpdated, String errorMessage) ; /** * This method allows the filter to determine how long the thread should wait for a * message to get ready for delivery, when currently there are none. * @return the time to wait for a message to get ready for delivery **/ long getWaitTime (); } /** * Define a STREAM repository. Streams are stored in the specified * destination. */ String SPOOL = "SPOOL"; /** * Returns an arbitrarily selected mail deposited in this Repository. * Usage: SpoolManager calls accept() to see if there are any unprocessed * mails in the spool repository. * * @return the mail */ Mail accept() throws InterruptedException; /** * Returns an arbitrarily select mail deposited in this Repository that * is either ready immediately for delivery, or is younger than it's last_updated plus * the number of failed attempts times the delay time. * Usage: RemoteDeliverySpool calls accept() with some delay and should block until an * unprocessed mail is available. * * @return the mail */ Mail accept(long delay) throws InterruptedException; /** * Returns an arbitrarily select mail deposited in this Repository for * which the supplied filter's accept method returns true. * Usage: RemoteDeliverySpool calls accept(filter) with some a filter which determines * based on number of retries if the mail is ready for processing. * If no message is ready the method will block until one is, the amount of time to block is * determined by calling the filters getWaitTime method. * * @return the mail */ Mail accept(AcceptFilter filter) throws InterruptedException;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -