Požadavek shell
<request><shellid="{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><shellstatus="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).

