00001 /*------------------------------------------------------------------------------ 00002 Name: QueryKeyData.h 00003 Project: xmlBlaster.org 00004 Copyright: xmlBlaster.org, see xmlBlaster-LICENSE file 00005 ------------------------------------------------------------------------------*/ 00006 00022 #ifndef _UTIL_KEY_QUERYKEYDATA_H 00023 #define _UTIL_KEY_QUERYKEYDATA_H 00024 00025 #include <util/key/KeyData.h> 00026 #include <util/qos/AccessFilterQos.h> 00027 #include <string> 00028 #include <vector> 00029 00030 namespace org { namespace xmlBlaster { namespace util { namespace key { 00031 00032 typedef std::vector<org::xmlBlaster::util::qos::AccessFilterQos> AccessFilterVector; 00033 00034 class Dll_Export QueryKeyData : public KeyData 00035 { 00036 protected: 00037 00041 AccessFilterVector accessFilterVector_; 00042 00043 public: 00044 00048 QueryKeyData(org::xmlBlaster::util::Global& global); 00049 00050 QueryKeyData(org::xmlBlaster::util::Global& global, const std::string& query, const std::string& queryType); 00051 00052 QueryKeyData(const QueryKeyData& key); 00053 00054 std::string checkQueryType(const std::string& queryType); 00055 00056 QueryKeyData& operator =(const QueryKeyData& key); 00057 00058 void setOid(const std::string& oid); 00059 00060 void setQueryType(const std::string& queryType); 00061 00066 void setQueryString(const std::string& tags); 00067 00068 std::string getQueryString() const; 00069 00076 AccessFilterVector getAccessFilterVector() const; 00077 00078 void addFilter(const org::xmlBlaster::util::qos::AccessFilterQos& qos); 00079 00086 virtual std::string toXml(const std::string& extraOffset) const; 00087 virtual std::string toXml() const; 00088 00093 QueryKeyData* getClone() const; 00094 }; 00095 00096 }}}} // namespace 00097 00098 #endif 00099 00100 00101