00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_PATCH_H 00013 #define ZYPP_PATCH_H 00014 00015 #include "zypp/ResObject.h" 00016 #include "zypp/detail/PatchImplIf.h" 00017 00019 namespace zypp 00020 { 00021 00022 DEFINE_PTR_TYPE(Patch); 00023 00025 // 00026 // CLASS NAME : Patch 00027 // 00032 class Patch : public ResObject 00033 { 00034 public: 00035 typedef detail::PatchImplIf Impl; 00036 typedef Patch Self; 00037 typedef ResTraits<Self> TraitsType; 00038 typedef TraitsType::PtrType Ptr; 00039 typedef TraitsType::constPtrType constPtr; 00040 00041 public: 00042 typedef Impl::AtomList AtomList; 00043 00044 public: 00046 std::string id() const; 00048 Date timestamp() const; 00050 std::string category() const; 00052 bool reboot_needed() const; 00054 bool affects_pkg_manager() const; 00056 AtomList atoms() const; 00058 bool interactive() const; 00059 // TODO add comments and reevaluate the need for functions below 00060 void mark_atoms_to_freshen(bool freshen); 00061 bool any_atom_selected(); 00062 void select(); // TODO parameter to specify select/unselect or another function 00063 00064 protected: 00066 Patch( const NVRAD & nvrad_r ); 00068 virtual ~Patch(); 00069 00070 private: 00072 virtual Impl & pimpl() = 0; 00074 virtual const Impl & pimpl() const = 0; 00075 }; 00076 00078 } // namespace zypp 00080 #endif // ZYPP_PATCH_H