00001 /* 00002 * ################################################################ 00003 * 00004 * ProActive: The Java(TM) library for Parallel, Distributed, 00005 * Concurrent computing with Security and Mobility 00006 * 00007 * Copyright (C) 1997-2007 INRIA/University of Nice-Sophia Antipolis 00008 * Contact: proactive@objectweb.org 00009 * 00010 * This library is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU Lesser General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 2.1 of the License, or any later version. 00014 * 00015 * This library is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public 00021 * License along with this library; if not, write to the Free Software 00022 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00023 * USA 00024 * 00025 * Initial developer(s): The ProActive Team 00026 * http://www.inria.fr/oasis/ProActive/contacts.html 00027 * Contributor(s): 00028 * 00029 * ################################################################ 00030 */ 00031 package org.objectweb.proactive.core.descriptor.services; 00032 00033 import org.objectweb.proactive.core.ProActiveException; 00034 import org.objectweb.proactive.core.node.Node; 00035 import org.objectweb.proactive.core.runtime.ProActiveRuntime; 00036 import org.objectweb.proactive.scheduler.Scheduler; 00037 import org.objectweb.proactive.scheduler.SchedulerConstants; 00038 00039 00049 public class SchedulerLookupService implements UniversalService, 00050 SchedulerConstants { 00051 protected static String serviceName = SCHEDULER_NODE_NAME; 00052 protected Scheduler scheduler; 00053 protected ProActiveRuntime[] runtimeArray; 00054 protected int askedNodes = 0; 00055 protected int minAskedNodes = 0; 00056 00057 public SchedulerLookupService(String schedulerURL) { 00058 scheduler = Scheduler.connectTo(schedulerURL + "/" + serviceName); 00059 this.runtimeArray = null; 00060 } 00061 00065 public ProActiveRuntime[] startService() throws ProActiveException { 00066 return null; 00067 } 00068 00072 public Node [] getNodes() { 00073 String jobId = System.getProperty(JOB_ID); 00074 00075 return scheduler.getReservedNodes(jobId, askedNodes); 00076 } 00077 00081 public String getServiceName() { 00082 return serviceName; 00083 } 00084 00088 public Scheduler getSchedulerService() { 00089 return this.scheduler; 00090 } 00091 00095 public int getNodeNumber() { 00096 return askedNodes; 00097 } 00098 00103 public void setNodeNumber(int nodeNumber) { 00104 this.askedNodes = nodeNumber; 00105 } 00106 00110 public int getMinNodeNumber() { 00111 return minAskedNodes; 00112 } 00113 00120 public void setMinNodeNumber(int nodeNumber) { 00121 this.minAskedNodes = nodeNumber; 00122 } 00123 }