[ < ] |
[ > ] |
|
[ << ] |
[ Up ] |
[ >> ] |
|
|
|
|
[Top] |
[Contents] |
[Index] |
[ ? ] |
Írta Eric Sunshine, sunshine@sunshineco.com.
Amikor elindítasz egy alkalmazást, a konfigurációkezelő összegyűjti a konfigurációs információkat a különböző helyekről, beleértve azokat az informáiókat, amiket az alkalmazás saját konfigurációs fájlja és a használt pluginok konfigurációs fájljai tartalmaznak. Lehetséges, hogy a különböző helyekről összegyűjtött konfigurációs információk ütközéseket okoznak a konfigurációs beállíásoknál. Ezért minden konfihurciós forráshoz prioritást rendelünk hozzá, és ez a prioritási érték oldja fel az ütközéseket.
Az egyes konfigurációs információkhoz tartozó prioritások következnek most. A magasabb prioritások (tartományok) kerültek előrébb, zalacsonyabbak hátrább.
A parancssori opciók kapják a legmagasabb prioritást. Felülbírálják a konfiguráiósfájlok beállításait. Például a '--video=' opció felülbírálja a konfigurációs fájlok `System.Plugins.iGraphics3D' kulcsát.
A következő prioritási szintet a felhasználó- illetv alkalmazásspecifikus beállításokélvezik. Ezek a beállíátások különálló felhasználókra és különálló alkalmazásokra érvényesek. Ez az a hely, ahol a felhasználó személyes beállíásait tárolja a porgram. Például ha gy játék lehetővé teszi a felhasználónak a képernyőfeolbontás beálítását, vagy ha statisztikákat akar eltárolni a a felhasználóról, azok ezen tartomány alá esnek. Ezek az informáviók gy felhaszánlóra és egy egy alkalmazásra érvényesek. Ezek az informácók nem vonatkoznak más felhasználókra és alkalmazásokra. Az ebbe aprioritásba eső beállítások plarformfüggő módon vannak tárova (lásd Config PerUser ). Sokszor ezek a beállítások együtt együtt mozognak a felhasználóval, amikor a felhasználó gépet vált.
Ahhoz, hogy megfelelően legyenek beálítca a konfigurációs beálítások, az alkalmazásnak egyedi azonosítót kell adnia a konfigurációkezelőnek. Ez jellemzően azt jelenti, hogy egy `System.ApplicationID'kulcs szerepel az alkalmazás konfigurációs fájlában. Az alkalmazás azonósítóját megkapva a konfiguráció kezelő képes lesz meghatározni az alkalmazás felhasználóspecifikus beállításait.
Ajánlatos a <Gyártó>. <Terméknév> forma használtata, amikor létrehozzuk ezt az azonosítót. A Crystal Space példaakalmazások a 'CrystalSpace' használják a z alkalmazás azonosító Gyártó helyén, például `CrystalSpace.Walktest'. A saját konfigurációsfáljodba a következő kulcsot helyezheted el:
|
System.ApplicationID = MyCompany.MyGame |
Felhasználóra jellemző, alkalmazássemleges beálítások adják a következő legmagasabb prioritást. Ezen beállítások egy különálló felhasználóra jellemzőek, és nem különálló alkalmazásokra. Például ha a felhasználó azt szereti, hogy minden Crystal Space alkamazás teljesképernyősmódban fut, akkor ebben az esetben a kulcsot `Video.FullScreen' `yes'értékre állíthatja. A felhasználóra jellemző és az alkalmazásra jellemző beállítások is platformfüggetlen módon kerülnek tárolásra (lásd még Config PerUser.) A felhasználóra és alkalmaásokra jellemző beállításokkal szemben, amik egyedi alaklmazás azonosítót használnak, ezek a báeállítások a `CrystalSpace.Global' kulcsot használják.
Az alkalmazásra jellemző beállítások élvezik a következő prioritási szintet. Ezek a beállítások egy adott alkalmazásra érvényesek, de megoszthatók minen, az adott alkalmazást használók között. A felhasználóspecifikus beállítások magasabb prioritáson állnak, és ahogy a paranccsori opciók is, ezek felülbírálják ezeket a beállításokat. Ennek megfelelően az alkalmazásspecifikus beállítások felülbírálják a a pluginspecifikus beállításokat. Pédául ha a vászon plugin kofigurációs fájlja az alapértelmezett felbontát 640x480-on adja meg, az alkamazás konfigurációs fájlja felülbírálhatja ez, ha megad egy saját 'Video.ScreenWidth' és Video.ScreenHeight' kulcsot. Az alkalmazásspecifikus beállítások tpipikusan az alkalmazás konfigurációs fájljában szerepelnek. Például a Walktest alkalmazás a konfigurációs beállíátsait a 'walktest.cfg' fájlban tárolja. Programozóként te tipikusan a következő kddal fogod az alkalmazás konfigurációs fájlját megadni:
|
csInitializer::SetupConfigManager(object_reg, "enalkalkalmazasom.cfg"); |
A pluginspecifikus beállítások élvezik a legkisebb prioritást. Ezek a beállíátsok adják alapértelmezett ociókat a pluin modulok számára. Például az OpenGL renderelő plugin a konfigurációs beállításait az opengl.cfg fáljból tölti be, míg a szoftveres renderelő a `soft3d.cfg' fájlból.
Ha a program lehetőséget ad a felhasználónak az opciók és beállítások megváltoztatására, ezek a változtatások alapértelemben a felhasználó- s alkalmazásspecifikus beállításokat érintik. Lehetséges programozás által a többi tartomnáyt is megváltoztatni, de erre csak ritkán van szükség vagy ritkán hasznos, mivel a legtöbb felhasználói beállítás a felhasználó- és alkalmazásspecifikus tartományra érvényes.
When programs store settings for a particular user, those settings belong to that user, which means that the settings must be stored separately from settings of other users. Furthermore, it is often convenient and desirable for a user's settings to roam with the user as the user moves from machine to machine. In order to satisfy these goals, Crystal Space utilizes platform-specific facilities for recording user-specific settings. Utilization of these facilities is typically transparent to both users and programmers, however an understanding of some basic issues regarding these facilities is useful.
As noted earlier, each application uses a unique identifier to distinguish its per-user settings from the per-user settings of other applications. An application typically sets its unique identifier via the `System.ApplicationID' key in its application-specific configuration file, though the identifier can also be set programmatically.
The actual manner in which the application identifier is employed to access and store settings is specific to each platform-dependent implementation, however it is a good idea to ensure that each application identifier is unique in order to avoid collisions with identifiers of other applications. For this reason, it is strongly recommended that an application identifier be composed with the form `<Producer>.<ProductName>'. Crystal Space example applications use `CrystalSpace' for the Producer portion of the application identifier; for example: `CrystalSpace.Walktest'. Your own application identifier can be composed of any suitable components. For instance, you might place the following key in your application-specific configuration file.
|
System.ApplicationID = MyCompany.MyGame |
On Windows, user-specific settings are stored in configuration files in the `Application Data' directory. The exact location and name of this directory differs between Windows versions and from language to language. On Windows XP, 2000, and NT the directory is typically `C:\Documents and Settings\<username>\Application Data'. On on Win9x it is typically `C:\WINDOWS\Application Data'.
The actual path of the user-specific, application-specific
configuration file is generated from the application's unique
application identifier by replacing all dots ('.'
)
with backslashes ('\'
) and adding a `.cfg'
suffix. For example, the configuration for the application which has
a unique identifier `MyGames.ClickFrenzy2' will be
stored as `Application Data\MyGames\ClickFrenzy2.cfg'.
User-specific, application-neutral settings, on the other hand, will
be stored as `Application Data\CrystalSpace\Global.cfg'. The
configuration file format is the described in the configuration file
section, Configuration File.
On Windows, it is also possible to store configuration settings in the Registry. This is accomplished by instantiating a `csWin32RegistryConfig' object and setting it as the configuration manager's dynamic domain after the configuration manager has been initialized. See the documentation for `csWin32RegistryConfig' for full details.
On Unix and Unix-like platforms, user-specific settings are stored in files in the hidden directory `$HOME/.crystalspace'. The actual name of a configuration file is generated from the unique application identifier with a `.cfg' suffix. For example, the configuration for the application which has a unique identifier `MyGames.ClickFrenzy2' will be stored as:
|
$HOME/.crystalspace/MyGames.ClickFrenzy2.cfg |
User-specific, application-neutral settings, on the other hand, will be stored as `$HOME/.crystalspace/CrystalSpace.Global.cfg'. The configuration file format is described in the configuration file section, Configuration File.
On MacOS/X, user-specific settings are stored via the Cocoa defaults database (also known programmatically as `NSUserDefaults'). A program's unique application identifier is used as the name of the persistent `NSUserDefaults' domain into which the settings are stored. For example, to list all the configuration settings for the application which has a unique identifier `MyGames.ClickFrenzy2', you would invoke the following command:
|
defaults read MyGames.ClickFrenzy2 |
User-specific, application-neutral settings, on the other hand, will be stored under the `NSUserDefaults' domain named `CrystalSpace.Global'. You can list the user-specific, application-neutral settings like this:
|
defaults read CrystalSpace.Global |
If you want to set some configuration options for all Crystal Space applications you can do so by storing the settings in the `CrystalSpace.Global' domain. For instance, to instruct all programs to use resolution 1024x768, you could do this:
|
defaults write CrystalSpace.Global Video.ScreenWidth 1024 defaults write CrystalSpace.Global Video.ScreenHeight 768 |
These settings will be used by all Crystal Space-based applications unless overridden explicitly by command-line arguments or user-specific, application-specific settings.
[ < ] |
[ > ] |
|
[ << ] |
[ Up ] |
[ >> ] |
This document was generated using texi2html 1.76.