#ifndef GB_ROBOTRULE_H #define GB_ROBOTRULE_H #include <stdint.h> #include <string> class Url; class RobotRule { public: RobotRule( bool isAllow, const char *path, int32_t pathLen ); bool isMatching( Url *url ) const; bool isAllow() const { return m_isAllow; } int32_t getPathLen() const { return m_pathLen; } void print( int level = 0 ) const; private: bool m_isAllow; const char *m_path; int32_t m_pathLen; std::string m_pathNormalized; bool m_wildcardFound; int32_t m_wildcardCount; bool m_lineAnchorFound; }; inline bool operator> ( const RobotRule& lhs, const RobotRule& rhs ) { return ( lhs.getPathLen() > rhs.getPathLen() ); } #endif // GB_ROBOTRULE_H