15.8. Wyniki działania zakończonych akcji (programów)
Program damcsud spodziewa się, że każda z uruchomionych akcji (program) może
wypisać rezultat działania na swoje standardowe wyjście. Jeśli nic nie zostanie
wypisane na standardowe wyjście, wtedy taka akcja nie będzie mogła wpłynąć na
stan sprawy, dla której została uruchomina.
Rezultat działania akcji jest przekazywany w postaci linii tekstu. Każda linia
odpowiada pojedynczemu zdarzeniu wchodzącemu w skład danej sprawy, lub jeśli składa
się tylko ze słowa opened, to znaczy, że sprawa powinna zostać zaznaczona jako
otwarta (następne akcje uruchamiane dla tej sprawy będą otrzymywać argument
--opened). Innymi
dwoma wyjątkomi są linie rozpoczynające się od słów
closing-reason oraz closed-by. W pierszym przypadku zapamiętany zostanie
tekst występujący po słowie kluczowym, który następnie będzie podawany
kolejnym akcjom jako argument opcji
--closing-reason. Analogiczna sytuacja
nastąpi w drugim przypadku, gdzie zapamiętany identyfikator stanie się
argumentem opcji
--closed-by kolejnych akcji. Każda linia odpowiadająca
pojedynczemu zdarzeniu składa się z dwóch elementów: identyfikatora
zdarzenia (argument każdej opcji --event-id) oraz kodu będącego wartością
typu long (32 bitowa liczba ze znakiem). Jeśli kod jest wartością dodatnią
lub zerem, to stan tego zdarzenia jest ustawiany na
active. W przeciwnym
wypadku stan zdarzenia jest ustawiany na
passive. Ze wszystkich kodów dla
każdego zdarzenia, jakie wygenerowała akcja wybierany jest kod maksymalny
nie mniejszy jednak niż -1 i jest on uznawany za kod powrotu całej akcji.
Jeśli kod powrotu jest liczbą dodatnią lub zerem, to czas modyfikacji
danej sprawy jest ustawiany na chwilę bieżącą, od której dodawana jest liczba
sekund równa kodowi powrotu akcji (tzn. czas modyfikacji danej sprawy jest
młodszy od chwili bieżącej o liczbę sekund równą kodowi powrotu akcji).
Na końcu operacji zapamiętywany jest kod powrotu tej akcji dla danej sprawy.