00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | (C) SuSE GmbH | 00011 \----------------------------------------------------------------------/ 00012 00013 File: PMLanguageManager.h 00014 00015 Author: Michael Andres <ma@suse.de> 00016 Maintainer: Michael Andres <ma@suse.de> 00017 00018 /-*/ 00019 #ifndef PMLanguageManager_h 00020 #define PMLanguageManager_h 00021 00022 #include <iosfwd> 00023 #include <list> 00024 #include <map> 00025 #include <set> 00026 00027 #include <y2pm/PMError.h> 00028 #include <y2pm/PMManager.h> 00029 #include <y2pm/PMLanguage.h> 00030 00032 // 00033 // CLASS NAME : PMLanguageManager 00037 class PMLanguageManager : public PMManager { 00038 00039 friend std::ostream & operator<<( std::ostream & str, const PMLanguageManager & obj ); 00040 00041 PMLanguageManager & operator=( const PMLanguageManager & ); 00042 PMLanguageManager ( const PMLanguageManager & ); 00043 00044 private: 00045 00046 friend class Y2PM; 00047 PMLanguageManager(); 00048 virtual ~PMLanguageManager(); 00049 00050 private: 00051 00052 typedef std::map<LangCode,PMLanguagePtr> Objects; 00053 00054 Objects _installedObjs; 00055 00056 Objects _availableObjs; 00057 00058 private: 00059 00064 virtual PMObjectPtr assertObjectType( const PMObjectPtr & object_r ) const; 00065 00069 virtual void prePSI(); 00073 virtual void postPSI(); 00074 00078 virtual void selectableNotify( constPMSelectablePtr item_r, SelState old_r, SelState new_r ); 00079 00080 public: 00081 00082 virtual void rescan(); 00083 00084 void setComittedLocales( PM::LocaleSet locales_r ); 00085 00086 public: 00087 00088 typedef std::set<PMSelectablePtr> PkgSelectables; 00089 00090 PkgSelectables getLangPackagesFor( LangCode langCode_r ) const; 00091 00092 PkgSelectables getLangPackagesFor( constPMLanguagePtr lang_r ) const { 00093 if ( lang_r ) 00094 return getLangPackagesFor( lang_r->langCode() ); 00095 return PkgSelectables(); 00096 } 00097 00098 PkgSelectables getLangPackagesFor( constPMSelectablePtr lang_r ) const { 00099 if ( lang_r ) 00100 return getLangPackagesFor( constPMLanguagePtr( lang_r->theObject() ) ); 00101 return PkgSelectables(); 00102 } 00103 00104 }; 00105 00107 00108 #endif // PMLanguageManager_h
1.4.4