util/qos/QueryQosData.h

Go to the documentation of this file.
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