00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_SELECTION_H 00013 #define ZYPP_SELECTION_H 00014 00015 #include "zypp/ResObject.h" 00016 #include "zypp/detail/SelectionImplIf.h" 00017 00019 namespace zypp 00020 { 00021 00022 DEFINE_PTR_TYPE(Selection); 00023 00025 // 00026 // CLASS NAME : Selection 00027 // 00030 class Selection : public ResObject 00031 { 00032 public: 00033 typedef detail::SelectionImplIf Impl; 00034 typedef Selection Self; 00035 typedef ResTraits<Self> TraitsType; 00036 typedef TraitsType::PtrType Ptr; 00037 typedef TraitsType::constPtrType constPtr; 00038 00039 public: 00041 Label category() const; 00042 inline bool isBase() const 00043 { return category() == "baseconf"; } 00044 00046 bool visible() const; 00047 00049 Label order() const; 00050 00051 const std::set<std::string> install_packages( const Locale & lang = Locale("") ) const; 00052 00053 protected: 00055 Selection( const NVRAD & nvrad_r ); 00057 virtual ~Selection(); 00058 00059 private: 00061 virtual Impl & pimpl() = 0; 00063 virtual const Impl & pimpl() const = 0; 00064 }; 00066 00068 } // namespace zypp 00070 #endif // ZYPP_SELECTION_H