00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_CAPABILITY_NAMEDCAP_H 00013 #define ZYPP_CAPABILITY_NAMEDCAP_H 00014 00015 #include "zypp/capability/CapabilityImpl.h" 00016 00018 namespace zypp 00019 { 00020 00021 namespace capability 00022 { 00023 00025 // 00026 // CLASS NAME : NamedCap 00027 // 00031 class NamedCap : public CapabilityImpl 00032 { 00033 public: 00034 typedef NamedCap Self; 00035 00037 NamedCap( const Resolvable::Kind & refers_r, const std::string & name_r ) 00038 : CapabilityImpl( refers_r ) 00039 , _name( name_r ) 00040 {} 00041 00042 public: 00044 virtual const Kind & kind() const; 00045 00047 virtual CapMatch matches( const constPtr & rhs ) const; 00048 00050 virtual std::string encode() const; 00051 00052 protected: 00054 const std::string & name() const 00055 { return _name; } 00057 virtual const Edition::MatchRange & range() const; 00058 00059 private: 00061 std::string _name; 00062 }; 00064 00066 } // namespace capability 00069 } // namespace zypp 00071 #endif // ZYPP_CAPABILITY_NAMEDCAP_H