00001 #ifndef _xpathoperator_h 00002 #define _xpathoperator_h 00003 00004 #include <spl/types.h> 00005 #include <spl/Debug.h> 00006 #include <spl/Memory.h> 00007 #include <spl/RefCountPtr.h> 00008 #include <spl/collection/Vector.h> 00009 #include <spl/xml/XmlNode.h> 00010 #include <spl/xml/XmlNodeList.h> 00011 00012 class XPathOperator; 00013 typedef RefCountPtr<XPathOperator> XPathOperatorPtr; 00014 00015 class XPathOperator : public IMemoryValidate 00016 { 00017 public: 00018 XPathOperator(); 00019 XPathOperator(const XPathOperator& o); 00020 virtual ~XPathOperator(); 00021 00022 virtual XPathOperator& operator =(const XPathOperator& xp); 00023 00024 virtual bool IsMatch(XmlNode& context); 00025 virtual XmlNodeListPtr NextContext(XmlNodePtr context); 00026 00027 #if defined(DEBUG) || defined(_DEBUG) 00028 void CheckMem() const; 00029 void ValidateMem() const; 00030 #endif 00031 }; 00032 00033 #endif