KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > proactive > core > body > request > RequestReceiverImpl


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 import org.apache.log4j.Logger;
34
35 import org.objectweb.proactive.Body;
36
37
38 public class RequestReceiverImpl implements RequestReceiver,
39     java.io.Serializable JavaDoc {
40     public static Logger logger = Logger.getLogger(RequestReceiverImpl.class.getName());
41
42     //list of immediate services (method names)
43
private java.util.Vector JavaDoc immediateServices;
44
45     public RequestReceiverImpl() {
46         this.immediateServices = new java.util.Vector JavaDoc(2);
47         this.immediateServices.add("toString");
48         this.immediateServices.add("hashCode");
49     }
50
51     public void receiveRequest(Request request, Body bodyReceiver)
52         throws java.io.IOException JavaDoc {
53         if (immediateExecution(request.getMethodName())) {
54             if (logger.isDebugEnabled()) {
55                 logger.debug("immediately serving " + request.getMethodName());
56             }
57             bodyReceiver.serve(request);
58             if (logger.isDebugEnabled()) {
59                 logger.debug("end of service for " + request.getMethodName());
60             }
61         } else {
62             request.notifyReception(bodyReceiver);
63             bodyReceiver.getRequestQueue().add(request);
64         }
65     }
66
67     private boolean immediateExecution(String JavaDoc methodName) {
68         if (logger.isDebugEnabled()) {
69             logger.debug("immediateExecution for methode " + methodName +
70                 " is " + immediateServices.contains(methodName));
71         }
72
73         // if (immediateServices.contains(methodName)) {
74
// return true;
75
// } else {
76
// return false;
77
// }
78
return immediateServices.contains(methodName);
79     }
80
81     public void setImmediateService(String JavaDoc methodName) {
82         this.immediateServices.add(methodName);
83     }
84 }
85
Popular Tags