Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

PMLanguageManager.h

Go to the documentation of this file.
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

Generated on Mon Sep 12 21:52:13 2005 for yast2-packagemanager by  doxygen 1.4.4