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; 32 33 import java.util.Hashtable; 34 35 import org.objectweb.proactive.core.body.migration.MigrationManagerFactory; 36 import org.objectweb.proactive.core.body.reply.ReplyReceiverFactory; 37 import org.objectweb.proactive.core.body.request.RequestFactory; 38 import org.objectweb.proactive.core.body.request.RequestQueueFactory; 39 import org.objectweb.proactive.core.body.request.RequestReceiverFactory; 40 import org.objectweb.proactive.core.component.identity.ProActiveComponentFactory; 41 import org.objectweb.proactive.core.group.ProActiveGroupManagerFactory; 42 import org.objectweb.proactive.core.util.ThreadStoreFactory; 43 import org.objectweb.proactive.ext.security.ProActiveSecurityManager; 44 45 46 /** 47 * <p> 48 * A class implementing this interface if able to provide instances of factories 49 * that can create MetaObjects used in the Body. 50 * </p> 51 * 52 * @author ProActive Team 53 * @version 1.0, 2002/05 54 * @since ProActive 0.9.2 55 */ 56 public interface MetaObjectFactory { 57 58 /** 59 * Creates or reuses a RequestFactory 60 * @return a new or existing RequestFactory 61 * @see RequestFactory 62 */ 63 public RequestFactory newRequestFactory(); 64 65 /** 66 * Creates or reuses a ReplyReceiverFactory 67 * @return a new or existing ReplyReceiverFactory 68 * @see ReplyReceiverFactory 69 */ 70 public ReplyReceiverFactory newReplyReceiverFactory(); 71 72 /** 73 * Creates or reuses a RequestReceiverFactory 74 * @return a new or existing RequestReceiverFactory 75 * @see RequestReceiverFactory 76 */ 77 public RequestReceiverFactory newRequestReceiverFactory(); 78 79 /** 80 * Creates or reuses a RequestQueueFactory 81 * @return a new or existing RequestQueueFactory 82 * @see RequestQueueFactory 83 */ 84 public RequestQueueFactory newRequestQueueFactory(); 85 86 /** 87 * Creates or reuses a MigrationManagerFactory 88 * @return a new or existing MigrationManagerFactory 89 * @see MigrationManagerFactory 90 */ 91 public MigrationManagerFactory newMigrationManagerFactory(); 92 93 /** 94 * Creates or reuses a RemoteBodyFactory 95 * @return a new or existing RemoteBodyFactory 96 * @see RemoteBodyFactory 97 */ 98 public RemoteBodyFactory newRemoteBodyFactory(); 99 100 /** 101 * Creates or reuses a ThreadStoreFactory 102 * @return a new or existing ThreadStoreFactory 103 * @see ThreadStoreFactory 104 */ 105 public ThreadStoreFactory newThreadStoreFactory(); 106 107 // GROUP 108 /** 109 * Creates or reuses a ProActiveGroupManagerFactory 110 * @return a new ProActiveGroupManagerFactory 111 */ 112 public ProActiveGroupManagerFactory newProActiveGroupManagerFactory(); 113 114 /** 115 * creates a ProActiveComponentFactory 116 * @return a new ProActiveComponentFactory 117 */ 118 119 // COMPONENTS 120 public ProActiveComponentFactory newComponentFactory(); 121 122 /** 123 * accessor to the parameters of the factory (object-based configurations) 124 * @return the parameters of the factory 125 */ 126 127 // COMPONENTS 128 public Hashtable getParameters(); 129 130 //SECURITY 131 /** 132 * Creates the ProActiveSecurityManager 133 * @return a new ProActiveSecurityManager 134 * @see ProActiveSecurityManager 135 */ 136 public ProActiveSecurityManager getProActiveSecurityManager(); 137 138 public void setProActiveSecurityManager(ProActiveSecurityManager psm); 139 140 } 141