Požadavek shell
<request>
<shell
id="{number}"
command="{string}"
call="sync|async|detach"
join-output="{boolean}"
no-output="{boolean}"
survive="{boolean}"
timeout="{number}"
retrieve-timeout="{number}"
out-buffer-size="{number}"
err-buffer-size="{number}"
input-encoding="hex|utf8|utf16|acp|base64|cislo kodove stranky"
encode="hex|url|base64|xml|json|raw"
codepage="utf8|utf16|acp|cislo kodove stranky"
exit-code="{number}"
/>
</request>
Atributy

id - id dříve odeslaného požadavku o jehož výsledek si žádáte(typ: number) TYP HODNOTY: number;

command - volaný příkaz, pokud se nejedná o standardní příkaz jehož cesta je uvedena v env PATH, musí obsahovat úplnou cestu ke spustitelnému souboru, může obsahovat parametry předávané spustitelnému programu(typ: string) TYP HODNOTY: string;

call - určuje způsob volání programu, bližší popis naleznete dále v tomto dokumentu, výchozí hodnotou je sync(typ: string)
TYP HODNOTY: string;
Možnosti obsahu:
» sync ~ program je volán synchronně
» async ~ program bude volán asynchronně
» detach ~ způsobí, že server program spustí a dále se o jeho běh nestará, není možné vrátit výstupy a nelze aplikovat timeouty

join-output - určuje zda má dojít ke sloučení standardního a chybového výstupu do jednoho (standardního), výchozí hodnotou je false(typ: boolean) TYP HODNOTY: boolean;

no-output - určuje zda se má standardní výstup ignorovat (nevracet), pokud jsou výstupy sloučeny atributem join-output, nevrací se žádný výstup, výchozí hodnotou je false(typ: boolean) TYP HODNOTY: boolean;

survive - určuje zda má spuštěný program 'přežít'ukončení serveru, pokud true, program zůstane běžet i po zastavení serveru, pokud false, program je pri ukončování serveru násilně ukončen, atribut survive se uplatní pouze v případě, že je spustitelný soubor volán v asynchronním režimu (atribut async='true'), výchozí hodnota je false(typ: boolean) TYP HODNOTY: boolean;

timeout - maximální doba [s] běhu spuštěného programu, pak je program serverem násilně ukončen, výchozí hodnota 0 - nekonečno(typ: number) TYP HODNOTY: number;

retrieve-timeout - maximální doba [s] čekání na vyzvednutí odpovědi v async='true' režimu, po uplynutí je odpověď zapomenuta, výchozí hodnota 0 - nekonečno(typ: number) TYP HODNOTY: number;

out-buffer-size - velikost bufferu [B] na standardní výstup, neomezuje velikost celkového přijatého výstupu, spíše v jakém počtu kroků se bude přijímat a tím i rychlost, výchozí hodnotou je výchozí hodnota OS(typ: number) TYP HODNOTY: number;

err-buffer-size - velikost bufferu [B] na chybový výstup, neomezuje velikost celkového přijatého výstupu, spíše v jakém počtu kroků se bude přijímat a tím i rychlost, výchozí hodnotou je výchozí hodnota OS(typ: number) TYP HODNOTY: number;

input-encoding - určuje způsob jakým jsou vstupní data zakódována poslána na standardní vstup volaného programu, výchozí hodnota utf8(typ: number)
TYP HODNOTY: number;
Možnosti obsahu:
» hex ~ vstup je programu předaný jako zakódovaný hexadecimálně
» utf8 ~ s programem se komunikuje v UTF-8
» utf16 ~ s programem se komunikuje v UTF-16
» acp ~ s programem se komunikuje v aktuální kódové stránce
» base64 ~ vstup je programu předaný jako zakódovaný base64
» cislo kodove stranky ~ s programem se komunikuje v číselně zadané kódové stránce

encode - určuje způsob jakým jsou kódována výstupní data (normání i chybová), výchozí hodnotou je raw (nejsou kódována vůbec)(typ: string)
TYP HODNOTY: string;
Možnosti obsahu:
» hex ~ výstup je vracen zakódovaný hexadecimálně
» url ~ výstup je vracen zakódovaný URL encoding
» base64 ~ výstup je vracen zakódovaný do base64
» xml ~ výstup je zakódován tak, aby byly nahrazeny takové znaky, aby vzniklo platné XML
» json ~ výstup je převeden z našeho JSON XML do JSON
» raw ~ výstup je vracen bez jakékoli úpravy

codepage - určuje, jakou kódovou stránku používat při komunikaci s programem, používá se pro vstup i výstup, výchozí hodnotou je OEM(typ: string)
TYP HODNOTY: string;
Možnosti obsahu:
» utf8 ~ s programem se komunikuje v UTF-8
» utf16 ~ s programem se komunikuje v UTF-16
» acp ~ s programem se komunikuje v aktuální kódové stránce
» cislo kodove stranky ~ s programem se komunikuje v číselně zadané kódové stránce

exit-code - exit code programu, který je považován za úspěch(typ: number) TYP HODNOTY: number;
Potomci
Požadavek shell neobsahuje žádné další elementy, ani žádné jiné číselné či řetězcové hodnoty.
Odpověď
Struktura odpovědi na požadavek shell vrácená v obálce response:
<response>
<shell
status="ok|fail|running|detached|killed|not-found|error"
id="{string}"
command="{string}"
result="{number}"
start="{dateTime}"
stop="{dateTime}"
duration="{number}"
>
<output ... /> ?
<error ... /> ?
</shell>
</response>
Atributy

status - popis neuveden(typ: string)
TYP HODNOTY: string;
Možnosti obsahu:
» ok ~ příkaz byl proveden a dokončen, výstupy jsou přítomny v odpovědi
» fail ~ příkaz byl proveden a dokončen, výstupy jsou přítomny v odpovědi, exit code progarmu se ale neshoduje s tím uvedeným v atributu exit-code
» running ~ program je spuštěn v asynchronním režimu a běží, tato odpověď je vracena při spuštění programu v async režimu a také při požadavku na získání výsledků dříve spuštěného programu, pokud stále běží
» detached ~ program byl spuštěn jako detašovaný a server o něm již nemá žádné informace
» killed ~ program byl násilně ukončen pravděpodobně z důvodu timeout, výstupy přítomné v odpovědi nemusí být kompletní
» not-found ~ požadované id se nepodařilo najít, není ani mezi běžícími ani mezi dokončenými úlohami
» error ~ došlo k nějaké chybě, podrobnosti jsou obsaženy v dalším atributu, viz chybová odpověď

id - je v odpovědi přítomen pouze pokud se jedná o asynchronní požadavek, označuje pak ID použitelné k vyzvednutí odpovědi(typ: string) TYP HODNOTY: string;

command - obsahuje původně volaný příkaz(typ: string) TYP HODNOTY: string;

result - obsahuje stavový kód dokončeného programu(typ: number) TYP HODNOTY: number;

start - obsahuje datum a čas zahájení(typ: dateTime) TYP HODNOTY: dateTime;

stop - obsahuje datum a čas dokončení(typ: dateTime) TYP HODNOTY: dateTime;

duration - obsahuje dobu trvání v [ns](typ: number) TYP HODNOTY: number;
Potomci
Uzel output
<output>
<{element} ... > ... </{element}>*
</output>
Atributy
Uzel output neobsahuje žádné atributy.
Potomci
Uzel output umožňuje uvést nepovinný, ale opakovatelný element - Standardní výstup programu
Uzel error
<error/>
Atributy
Uzel error neobsahuje žádné atributy.
Potomci
Uzel error neobsahuje žádné další elementy, ani žádné jiné číselné či řetězcové hodnoty.
Výraz pro identifikaci chyb v odpovědi serveru: shell[@status='error'] (odkaz na popis detailu: @detail).