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