00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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