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 PRODUCERTYPE_H 00015 #define PRODUCERTYPE_H 00016 #include <string> 00017 00018 namespace glite 00019 { 00020 namespace rgma 00021 { 00025 class ProducerType 00026 { 00027 public: 00037 ProducerType(bool history = false, bool latest = false, bool continuous = true, bool isStatic = false, bool republisher = false); 00049 ProducerType(bool history, bool latest, bool continuous, bool isStatic, bool republisher, bool ignoreSlowConsumers); 00050 ~ProducerType(); 00051 ProducerType( const ProducerType& type ); 00052 ProducerType& operator=(const ProducerType& type ); 00053 bool operator==(const ProducerType& type ); 00054 00060 bool isSecondaryProducer() ; 00061 00069 bool isRepublisher(); 00070 00076 bool isContinuous(); 00077 00083 bool isStatic(); 00084 00090 bool isHistory(); 00091 00097 bool isLatest(); 00098 00102 std::string toString(); 00103 00111 bool ignoreSlowConsumers(); 00112 00120 void setRepublisher(bool secondaryProducer); 00121 00127 void setSecondaryProducer(bool secondaryProducer); 00128 00129 private: 00131 bool m_secondaryProducer; 00132 00134 bool m_continuous; 00135 00137 bool m_static; 00138 00140 bool m_history; 00141 00143 bool m_latest; 00144 00146 bool m_ignoreSlowConsumers; 00147 }; 00148 } 00149 } 00150 #endif