00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_ATOM_H 00013 #define ZYPP_ATOM_H 00014 00015 #include "zypp/ResObject.h" 00016 #include "zypp/detail/AtomImplIf.h" 00017 00019 namespace zypp 00020 { 00021 00023 // 00024 // CLASS NAME : Atom 00025 // 00026 class Atom : public ResObject 00027 { 00028 public: 00029 typedef detail::AtomImplIf Impl; 00030 typedef Atom Self; 00031 typedef ResTraits<Self> TraitsType; 00032 typedef TraitsType::PtrType Ptr; 00033 typedef TraitsType::constPtrType constPtr; 00034 00035 protected: 00036 Atom( const NVRAD & nvrad_r ); 00038 virtual ~Atom(); 00039 00040 private: 00042 virtual Impl & pimpl() = 0; 00044 virtual const Impl & pimpl() const = 0; 00045 }; 00046 00048 } // namespace zypp 00050 #endif // ZYPP_ATOM_H