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 CONSUMERFACTORY_H 00015 #define CONSUMERFACTORY_H 00016 00017 #include "rgma/Consumer.h" 00018 #include "rgma/TimeInterval.h" 00019 #include "rgma/StringList.h" 00020 #include "rgma/QueryProperties.h" 00021 #include "rgma/ResourceEndpoint.h" 00022 00023 namespace glite 00024 { 00025 namespace rgma 00026 { 00030 class ConsumerFactory 00031 { 00032 public: 00033 virtual ~ConsumerFactory(){} 00052 virtual Consumer* createConsumer(TimeInterval terminationInterval, 00053 std::string selectStatement, QueryProperties queryProperties) 00054 throw(RemoteException, RGMAException) = 0; 00055 00064 virtual Consumer* reconnectConsumer(ResourceEndpoint& resourceEndpoint) 00065 throw(RGMAException, RemoteException, UnknownResourceException)=0; 00066 00067 }; 00068 } 00069 } 00070 #endif // CONSUMERFACTORY_H