00001 /*------------------------------------------------------------------------------ 00002 Name: QueryQosData.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 ------------------------------------------------------------------------------*/ 00006 00027 #ifndef _UTIL_QOS_QUERYQOSDATA_H 00028 #define _UTIL_QOS_QUERYQOSDATA_H 00029 00030 #include <util/xmlBlasterDef.h> 00031 #include <util/qos/QosData.h> 00032 #include <util/qos/AccessFilterQos.h> 00033 #include <util/qos/HistoryQos.h> 00034 #include <vector> 00035 #include <string> 00036 00037 00038 00039 00040 00041 00042 namespace org { namespace xmlBlaster { namespace util { namespace qos { 00043 00044 typedef std::vector<org::xmlBlaster::util::qos::AccessFilterQos> AccessFilterVector; 00045 00046 class Dll_Export QueryQosData : public QosData 00047 { 00049 std::string subscriptionId_; 00050 00052 bool forceDestroy_; 00053 00055 bool meta_; 00056 00058 bool content_; 00059 00060 bool multiSubscribe_; 00061 00062 bool local_; 00063 00065 bool initialUpdate_; 00066 00068 bool updateOneway_; 00069 00071 bool notify_; 00072 00074 AccessFilterVector filters_; 00075 00077 org::xmlBlaster::util::qos::HistoryQos historyQos_; 00078 00080 int maxEntries_; 00081 bool consumable_; 00082 long timeout_; 00083 00084 void init(); 00085 00086 void copy(const QueryQosData& data); 00087 00088 public: 00089 00095 QueryQosData(org::xmlBlaster::util::Global& global); 00096 00097 void setMultiSubscribe(bool multiSubscribe); 00098 00103 bool getMultiSubscribe() const; 00104 00113 void setWantInitialUpdate(bool initialUpdate); 00114 00115 bool getWantInitialUpdate() const; 00116 00124 void setWantUpdateOneway(bool updateOneway); 00125 00126 bool getWantUpdateOneway() const; 00127 00128 void setWantNotify(bool notify); 00129 00130 bool getWantNotify() const; 00131 00135 void setWantLocal(bool local); 00136 00140 bool getWantLocal() const; 00141 00145 void setWantMeta(bool meta); 00146 00150 bool getWantMeta() const; 00151 00156 void setWantContent(bool content); 00157 00158 bool getWantContent() const; 00159 00163 void setForceDestroy(bool forceDestroy); 00164 00168 bool getForceDestroy() const; 00169 00173 void addAccessFilter(const org::xmlBlaster::util::qos::AccessFilterQos& filter); 00174 00175 AccessFilterVector getAccessFilters() const; 00176 00180 void setHistoryQos(const org::xmlBlaster::util::qos::HistoryQos& historyQos); 00181 00182 void setQueryQos(int maxEntries, long timeout, bool consumable); 00183 00188 org::xmlBlaster::util::qos::HistoryQos getHistoryQos() const; 00189 00195 std::string getSubscriptionId() const; 00196 00202 void setSubscriptionId(const std::string& subscriptionId); 00203 00210 std::string toXml(const std::string& extraOffset="") const; 00211 00216 QueryQosData* getClone() const; 00217 }; 00218 00219 }}}} // namespace 00220 00221 #endif 00222 00223