1 /* 2 * ################################################################ 3 * 4 * ProActive: The Java(TM) library for Parallel, Distributed, 5 * Concurrent computing with Security and Mobility 6 * 7 * Copyright (C) 1997-2002 INRIA/University of Nice-Sophia Antipolis 8 * Contact: proactive-support@inria.fr 9 * 10 * This library is free software; you can redistribute it and/or 11 * modify it under the terms of the GNU Lesser General Public 12 * License as published by the Free Software Foundation; either 13 * version 2.1 of the License, or any later version. 14 * 15 * This library is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 * Lesser General Public License for more details. 19 * 20 * You should have received a copy of the GNU Lesser General Public 21 * License along with this library; if not, write to the Free Software 22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 23 * USA 24 * 25 * Initial developer(s): The ProActive Team 26 * http://www.inria.fr/oasis/ProActive/contacts.html 27 * Contributor(s): 28 * 29 * ################################################################ 30 */ 31 package org.objectweb.proactive.core.body.request; 32 33 /** 34 * <p> 35 * A class implementing this interface can process requests. 36 * </p><p> 37 * It implements one method <code>processRequest</code> that takes a request 38 * and returns an int saying whether 39 * the request shall be removed and served, removed without serving or kept. 40 * </p><p> 41 * It is used as a call back interface allowing a custom processing on request 42 * stored in the request queue. 43 * </p><p> 44 * Typically it can be used to serve requests stored in a request queue in a 45 * custom manner. When doing custom processing, a request should 46 * be REMOVED from the queue BEFORE serving. 47 * </p> 48 * 49 * @author ProActive Team 50 * @version 1.0, 2001/10/23 51 * @since ProActive 0.9 52 * 53 */ 54 public interface RequestProcessor { 55 56 /** Constant indicating that the request shall be removed and served. */ 57 public final static int REMOVE_AND_SERVE = 1; 58 /** Constant indicating that the request shall removed without being served. */ 59 public final static int REMOVE = 2; 60 /** Constant indicating that the request shall be kept. */ 61 public final static int KEEP = 3; 62 63 /** 64 * Returns one of the constants indicating the desired treatment for the request. 65 * @param request the request to process 66 * @return one of the three constants above 67 */ 68 public int processRequest(Request request); 69 70 } 71