1 /* 2 * ################################################################ 3 * 4 * ProActive: The Java(TM) library for Parallel, Distributed, 5 * Concurrent computing with Security and Mobility 6 * 7 * Copyright (C) 1997-2004 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.component.identity; 32 33 import org.objectweb.fractal.api.Component; 34 35 import org.objectweb.proactive.core.UniqueID; 36 import org.objectweb.proactive.core.component.request.ComponentRequestQueue; 37 38 39 /** 40 * This class extends Component, in order to provide access to some ProActive 41 * functionalities (the parameters of the component, the request queue, the reified object) 42 * 43 * @author Matthieu Morel 44 */ 45 public interface ProActiveComponent extends Component { 46 47 48 /** 49 * accessor to the base object : either a direct reference or a stub 50 * @return a reference on the base object. If called from the meta-objects, 51 * it returns a direct reference on the base object. If called from the representative, 52 * it returns a stub on the base object (standard ProActive stub, same type than 53 * the base object) 54 */ 55 public Object getReferenceOnBaseObject(); 56 57 /** 58 * This method's implementation is only valid in the component meta-objects. 59 * @return a reference to the queue of request of this active object 60 */ 61 public ComponentRequestQueue getRequestQueue(); 62 63 /** 64 * comparison between components 65 * @param componentIdentity another component to compare to 66 * @return true if both components are equals 67 */ 68 public boolean equals(Object object); 69 70 71 /** 72 * getter for a unique identifier 73 * @return a unique identifier of the component (of the active object) accross virtual machines 74 */ 75 public UniqueID getID(); 76 77 78 79 }