00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef PODUCERFACTORYIMPL_H
00015 #define PODUCERFACTORYIMPL_H
00016 #include "rgma/TimeInterval.h"
00017 #include "rgma/URI.h"
00018 #include "rgma/StringList.h"
00019 #include "rgma/OnDemandProducer.h"
00020 #include "rgma/SecondaryProducer.h"
00021 #include "rgma/PrimaryProducer.h"
00022 #include "rgma/ProducerFactory.h"
00023 #include "rgma/RemoteException.h"
00024 #include "rgma/RGMAException.h"
00025 #include "rgma/ProducerProperties.h"
00026 #include "rgma/ResourceEndpoint.h"
00027 #include "rgma/UnknownResourceException.h"
00028 #include "rgma/TupleStoreList.h"
00029
00030 using glite::rgma::ProducerFactory;
00031 using glite::rgma::ProducerProperties;
00032 using glite::rgma::PrimaryProducer;
00033 using glite::rgma::SecondaryProducer;
00034 using glite::rgma::OnDemandProducer;
00035 using glite::rgma::StringList;
00036 using glite::rgma::TimeInterval;
00037 using glite::rgma::URI;
00038 using glite::rgma::RemoteException;
00039 using glite::rgma::RGMAException;
00040 using glite::rgma::ResourceEndpoint;
00041 using glite::rgma::UnknownResourceException;
00042 using glite::rgma::TupleStoreList;
00043 namespace rgma
00044 {
00045 namespace impl
00046 {
00052 class ProducerFactoryImpl: public virtual ProducerFactory
00053 {
00054 public:
00055
00056 ProducerFactoryImpl();
00057 virtual ~ProducerFactoryImpl();
00076 OnDemandProducer* createOnDemandProducer(
00077 TimeInterval terminationInterval,
00078 URI uri, StringList voNames)
00079 throw (RemoteException, RGMAException);
00094 OnDemandProducer* createOnDemandProducer(
00095 TimeInterval terminationInterval,
00096 URI uri)
00097 throw (RemoteException, RGMAException);
00106 OnDemandProducer* reconnectOnDemandProducer(ResourceEndpoint resourceEndpoint)
00107 throw (RGMAException, RemoteException, UnknownResourceException);
00108
00128 PrimaryProducer* createPrimaryProducer(
00129 TimeInterval terminationInterval, ProducerProperties producerProperties,
00130 StringList voNames)
00131 throw (RemoteException, RGMAException);
00132
00148 PrimaryProducer* createPrimaryProducer(
00149 TimeInterval terminationInterval, ProducerProperties producerProperties)
00150 throw (RemoteException, RGMAException);
00159 PrimaryProducer* reconnectPrimaryProducer(ResourceEndpoint resourceEndpoint)
00160 throw (RGMAException, RemoteException, UnknownResourceException);
00161
00181 SecondaryProducer* ProducerFactoryImpl::createSecondaryProducer(
00182 TimeInterval terminationInterval,
00183 ProducerProperties producerProperties,
00184 StringList voNames)
00185 throw (RemoteException, RGMAException);
00186
00202 SecondaryProducer* ProducerFactoryImpl::createSecondaryProducer(
00203 TimeInterval terminationInterval,
00204 ProducerProperties producerProperties)
00205 throw (RemoteException, RGMAException);
00214 SecondaryProducer* reconnectSecondaryProducer(ResourceEndpoint resourceEndpoint)
00215 throw (RGMAException, RemoteException, UnknownResourceException);
00216
00217
00218 };
00219 }
00220 }
00221 #endif