00001 /*---------------------------------------------------------------------\ 00002 | ____ _ __ __ ___ | 00003 | |__ / \ / / . \ . \ | 00004 | / / \ V /| _/ _/ | 00005 | / /__ | | | | | | | 00006 | /_____||_| |_| |_| | 00007 | | 00008 \---------------------------------------------------------------------*/ 00012 #ifndef ZYPP_SYSTEMRESOBJECT_H 00013 #define ZYPP_SYSTEMRESOBJECT_H 00014 00015 #include "zypp/ResObject.h" 00016 00018 namespace zypp 00019 { 00020 00021 class SystemResObject; 00022 00024 namespace detail 00025 { 00026 00028 // 00029 // CLASS NAME : SystemResObjectImplIf 00030 // 00033 class SystemResObjectImplIf : public ResObjectImplIf 00034 { 00035 public: 00036 typedef SystemResObject ResType; 00037 }; 00039 00041 } // namespace detail 00043 00045 // 00046 // CLASS NAME : SystemResObject 00047 // 00049 class SystemResObject : public ResObject 00050 { 00051 public: 00052 typedef detail::SystemResObjectImplIf Impl; 00053 typedef SystemResObject Self; 00054 typedef ResTraits<Self> TraitsType; 00055 typedef TraitsType::PtrType Ptr; 00056 typedef TraitsType::constPtrType constPtr; 00057 00058 public: 00060 static Ptr instance(); 00061 00062 protected: 00064 SystemResObject( const NVRAD & nvrad_r ); 00066 virtual ~SystemResObject(); 00067 00068 private: 00070 virtual Impl & pimpl() = 0; 00072 virtual const Impl & pimpl() const = 0; 00073 }; 00075 00077 } // namespace zypp 00079 #endif // ZYPP_SYSTEMRESOBJECT_H