00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_PATTERN_H 00013 #define ZYPP_PATTERN_H 00014 00015 #include "zypp/ResObject.h" 00016 #include "zypp/detail/PatternImplIf.h" 00017 #include "zypp/Pathname.h" 00018 00020 namespace zypp 00021 { 00022 00023 DEFINE_PTR_TYPE(Pattern); 00024 00026 // 00027 // CLASS NAME : Pattern 00028 // 00031 class Pattern : public ResObject 00032 { 00033 public: 00034 typedef detail::PatternImplIf Impl; 00035 typedef Pattern Self; 00036 typedef ResTraits<Self> TraitsType; 00037 typedef TraitsType::PtrType Ptr; 00038 typedef TraitsType::constPtrType constPtr; 00039 00040 public: 00042 bool isDefault() const; 00044 bool userVisible() const; 00046 std::string category() const; 00048 Pathname icon() const; 00050 Pathname script() const; 00052 Label order() const; 00053 00054 std::set<std::string> install_packages( const Locale & lang = Locale("") ) const; 00055 00056 protected: 00058 Pattern( const NVRAD & nvrad_r ); 00060 virtual ~Pattern(); 00061 00062 private: 00064 virtual Impl & pimpl() = 0; 00066 virtual const Impl & pimpl() const = 0; 00067 }; 00069 00071 } // namespace zypp 00073 #endif // ZYPP_PATTERN_H