15.4. Format pliku konfiguracyjnego
Plik konfiguracyjny składa się z obiektów, których typ wskazuje
słowo kluczowe użyte w ich nazwie, zaś ich specyfikacja jest ograniczona
klamrami {}. Obecnie jedynym dozwolonym typem obiektu jest action.
Słowo kluczowe określające typ obiektu musi być jedynym słowem w linii.
Ta sama reguła dotyczy klamry rozpoczynajacej i kończącej definicję
obiektu. Ogólnie więc pojedynczy obiekt wygląda tak:
action
{
...
}
Pola występujące pomiędzy klamrami są ściśle określone, podobnie jak ich
kolejność. Każdy z pierwszych 6 wpisów w definicji obiektu zajmuje sam całą linię i ma postać:
słowo_kluczowe=
Pierwszym polem jest id, za którym musi być podany identyfikator
(liczba typu unsigned long) obiektu. Na drugim miejscu występuje pole delaytime,
które wyznacza liczbę sekund jaka musi upłynąć od chwili utworzenia sprawy, aby
dana akcja mogła być uruchomiona. Kolejne pole repeatingtime wskazuje, co jaką
liczbę sekund dana akcja może zostać powtórzona. Powtarzanie i występowanie
akcji pomaga uściślić kolejne pole period. Jego wartości są typu
wyliczeniowego. Dozwolone są następujące wartości:
after_death
after_join
after_split
once
Każda inna wartość tego pola (w tym pusta) jest rozumiana jako wartość always.
Ostatnim wpisem mogącym wystąpić więcej niż jeden obowiązkowy raz jest obiekt program_spec.
Jego definicja jest ograniczona klamrami {}, które muszą, podobnie jak słowo kluczowe program_spec,
wystąpić same w osobnych liniach. Pierwszym wpisem tego obiektu jest program, który wyznacza ścieżkę
do programu jaki winien być uruchomiony dla tej akcji jeśli zostaną spełnione określone warunki.
ostatnim polem mogącym wystąpić więcej niż jeden obowiązkowy raz jest pole name. Specyfikuje ono
łańcuch znaków, który musi wystąpić chociaż w jednym zdarzeniu zawartym w sprawie, aby dana
akcja była dla niej uruchomiona. W przypadku, gdy pól name jest więcej niż jedno, to wszystkie
muszą wystąpić w pojedyńczym zdarzeniu, aby akcja mogła być uruchomiona.
Schemat definicji każdego obiektu wygląda więc następująco:
action
{
id=
delaytime=
repeatingtime=
period=
program_spec
{
program=
name=
...
}
...
}
Znaczenie wartości poszczególnych pól obiektu akcji jest omawiane przy okazji przedstawiania działania programu
damcsud.