org/objectweb/proactive/ext/locationserver/LocationServerMetaObjectFactory.java

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.ext.locationserver;
00032 
00033 import org.objectweb.proactive.core.body.MetaObjectFactory;
00034 import org.objectweb.proactive.core.body.UniversalBody;
00035 import org.objectweb.proactive.core.body.migration.MigrationManager;
00036 import org.objectweb.proactive.core.body.migration.MigrationManagerFactory;
00037 import org.objectweb.proactive.core.body.request.Request;
00038 import org.objectweb.proactive.core.body.request.RequestFactory;
00039 import org.objectweb.proactive.core.body.rmi.ProActiveRmiMetaObjectFactory;
00040 //import org.objectweb.proactive.core.body.ProActiveMetaObjectFactory;
00041 import org.objectweb.proactive.core.mop.MethodCall;
00042 
00043 
00054 public class LocationServerMetaObjectFactory
00055     extends ProActiveRmiMetaObjectFactory {
00056     //
00057     // -- PRIVATE MEMBERS -----------------------------------------------
00058     //
00059     private static MetaObjectFactory instance = null;
00060 
00061     //
00062     // -- CONSTRUCTORS -----------------------------------------------
00063     //
00064 
00068     protected LocationServerMetaObjectFactory() {
00069         super();
00070     }
00071 
00072     //
00073     // -- PUBLICS METHODS -----------------------------------------------
00074     //
00075     public static synchronized MetaObjectFactory newInstance() {
00076         if (instance == null) {
00077             instance = new LocationServerMetaObjectFactory();
00078         }
00079         return instance;
00080     }
00081 
00082     //
00083     // -- PROTECTED METHODS -----------------------------------------------
00084     //
00085     protected RequestFactory newRequestFactorySingleton() {
00086         return new RequestWithLocationServerFactory();
00087     }
00088 
00089     protected MigrationManagerFactory newMigrationManagerFactorySingleton() {
00090         return new MigrationManagerFactoryImpl();
00091     }
00092 
00093     //
00094     // -- INNER CLASSES -----------------------------------------------
00095     //
00096     protected class RequestWithLocationServerFactory implements RequestFactory,
00097         java.io.Serializable {
00098         transient private LocationServer server = LocationServerFactory.getLocationServer();
00099 
00100         public Request newRequest(MethodCall methodCall,
00101             UniversalBody sourceBody, boolean isOneWay, long sequenceID) {
00102             return new RequestWithLocationServer(methodCall, sourceBody,
00103                 isOneWay, sequenceID, server);
00104         }
00105     }
00106 
00107     protected static class MigrationManagerFactoryImpl
00108         implements MigrationManagerFactory, java.io.Serializable {
00109         public MigrationManager newMigrationManager() {
00110             return new MigrationManagerWithLocationServer(LocationServerFactory.getLocationServer());
00111         }
00112     }
00113 }

Generated on Mon Jan 22 15:16:10 2007 for ProActive by  doxygen 1.5.1