Main Page | Class Hierarchy | Class List | File List | Class Members | Related Pages

ProducerFactory.h

00001 /*
00002  *  Copyright (c) 2004 on behalf of the EU EGEE Project:
00003  *  The European Organization for Nuclear Research (CERN),
00004  *  Istituto Nazionale di Fisica Nucleare (INFN), Italy
00005  *  Datamat Spa, Italy
00006  *  Centre National de la Recherche Scientifique (CNRS), France
00007  *  CS Systeme d'Information (CSSI), France
00008  *  Royal Institute of Technology, Center for Parallel Computers (KTH-PDC), Sweden
00009  *  Universiteit van Amsterdam (UvA), Netherlands
00010  *  University of Helsinki (UH.HIP), Finland
00011  *  University of Bergen (UiB), Norway
00012  *  Council for the Central Laboratory of the Research Councils (CCLRC), United Kingdom
00013  */
00014 #ifndef PRODUCERFACTORY_H
00015 #define PRODUCERFACTORY_H
00016 
00017 #include "rgma/TimeInterval.h"
00018 #include "rgma/URI.h"
00019 #include "rgma/StringList.h"
00020 #include "rgma/ProducerProperties.h"
00021 #include "rgma/OnDemandProducer.h"
00022 #include "rgma/SecondaryProducer.h"
00023 #include "rgma/PrimaryProducer.h"
00024 #include "rgma/Resource.h"
00025 #include "rgma/RemoteException.h"
00026 #include "rgma/UnknownResourceException.h"
00027 #include "rgma/ResourceEndpoint.h"
00028 #include "rgma/UnknownResourceException.h"
00029 #include "rgma/TupleStoreList.h"
00030 
00031 namespace glite
00032 {
00033     namespace rgma
00034     {
00038         class ProducerFactory
00039         {
00040             public:
00041 
00042                 virtual ~ProducerFactory(){}
00060                 virtual OnDemandProducer* createOnDemandProducer(
00061                     TimeInterval terminationInterval,
00062                     URI uri, StringList voNames)throw(RemoteException, RGMAException) = 0;
00077                 virtual OnDemandProducer* createOnDemandProducer(
00078                     TimeInterval terminationInterval,
00079                     URI uri)
00080                     throw (RemoteException, RGMAException) = 0;
00089                 virtual OnDemandProducer* reconnectOnDemandProducer(ResourceEndpoint resourceEndpoint)
00090                     throw (RGMAException, RemoteException, UnknownResourceException) = 0;
00091 
00109                 virtual PrimaryProducer* createPrimaryProducer(
00110                     TimeInterval terminationInterval,
00111                     ProducerProperties producerProperties,
00112                     StringList voNames)throw(RemoteException, RGMAException) = 0;
00128                 virtual PrimaryProducer* createPrimaryProducer(
00129                     TimeInterval terminationInterval, ProducerProperties producerProperties)
00130                     throw (RemoteException, RGMAException) = 0;
00139                 virtual PrimaryProducer* reconnectPrimaryProducer(ResourceEndpoint resourceEndpoint)
00140                     throw (RGMAException, RemoteException, UnknownResourceException)= 0;
00141 
00160                 virtual  SecondaryProducer* createSecondaryProducer(
00161                     TimeInterval terminationInterval,
00162                     ProducerProperties producerProperties,
00163                     StringList voNames)throw(RemoteException, RGMAException) = 0;
00179                 virtual  SecondaryProducer* createSecondaryProducer(
00180                     TimeInterval terminationInterval,
00181                     ProducerProperties producerProperties)
00182                     throw (RemoteException, RGMAException) = 0;
00183 
00192                 virtual SecondaryProducer* reconnectSecondaryProducer(ResourceEndpoint resourceEndpoint)
00193                     throw (RGMAException, RemoteException, UnknownResourceException)= 0;
00194 
00195         };
00196     }
00197 }
00198 #endif                                            // PRODUCERFACTORY_H

Generated on Wed May 17 17:48:18 2006 for glite-rgma-api-cpp by doxygen 1.3.5