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 PRODUCERPROPERTIES_H 00015 #define PRODUCERPROPERTIES_H 00016 00017 #include "rgma/Storage.h" 00018 #include "rgma/RGMAException.h" 00019 00020 namespace glite 00021 { 00022 namespace rgma 00023 { 00027 class ProducerProperties 00028 { 00029 private: 00030 00031 bool m_history; 00032 bool m_latest; 00033 bool m_signalSlowConsumer; 00034 Storage m_storage; 00035 00036 protected: 00037 00038 public: 00040 const static int HISTORY; 00041 00043 const static int LATEST; 00044 00046 const static int CONTINUOUS; 00047 00060 ProducerProperties(const Storage storage, int supportedQueries, bool ignoreSlowConsumers); 00061 00073 ProducerProperties(const Storage storage = Storage::MEMORY, int supportedQueries = 0)throw(RGMAException); 00074 00075 virtual ~ProducerProperties(); 00076 00077 ProducerProperties( const ProducerProperties& producerProperties); 00078 00079 ProducerProperties& operator=(const ProducerProperties& producerProperties); 00080 00087 bool isHistory(); 00088 00094 bool isLatest(); 00095 00101 bool isSignalSlowConsumer(); 00102 00108 const Storage getStorage(); 00109 00110 }; 00111 } 00112 } 00113 #endif // PRODUCERPROPERTIES_H