00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_CAPABILITY_HALCAP_H 00013 #define ZYPP_CAPABILITY_HALCAP_H 00014 00015 #include "zypp/capability/CapabilityImpl.h" 00016 00018 namespace zypp 00019 { 00020 00021 namespace capability 00022 { 00023 00025 // 00026 // CLASS NAME : HalCap 00027 // 00041 class HalCap : public CapabilityImpl 00042 { 00043 public: 00044 typedef HalCap Self; 00045 00046 public: 00048 HalCap( const Resolvable::Kind & refers_r, const std::string & name_r ) 00049 : CapabilityImpl( refers_r ) 00050 , _name( name_r ) 00051 {} 00052 00054 HalCap( const Resolvable::Kind & refers_r, 00055 const std::string & name_r, 00056 Rel op_r, 00057 const std::string & value_r ) 00058 : CapabilityImpl( refers_r ) 00059 , _name( name_r ) 00060 , _op( op_r ) 00061 , _value( value_r ) 00062 {} 00063 00064 public: 00066 virtual const Kind & kind() const; 00067 00069 virtual CapMatch matches( const constPtr & rhs ) const; 00070 00072 virtual std::string encode() const; 00073 00075 virtual std::string index() const; 00076 00077 private: 00079 bool isEvalCmd() const; 00080 00082 bool evaluate() const; 00083 00084 private: 00086 std::string _name; 00087 Rel _op; 00088 std::string _value; 00089 }; 00091 00093 } // namespace capability 00096 } // namespace zypp 00098 #endif // ZYPP_CAPABILITY_HALCAP_H