Dátový kontajner je interná dátová štruktúra umožňujúca uchovávať jednoduché aj štruktúrované hodnoty podľa kľúča.
Vlastníkom kontajnera je vždy jedna bežiaca inštancia skriptu. Dátový kontajner je možné zdieľať medzi rôznymi skriptami, aj procesmi.
Kontajner má vlastný jednoznačný identifikátor.

Vznik kontajnera zabezpečujú akcie CNT_CREATE - voľne použiteľný kontajner, alebo GETARCHARR_TO_CNT. Druhý typ kontajnera je plnený stránkami, ktoré obsahujú dáta prečítané z archívu.
Takto koncipovaný prístup do archívu je efektívnejší (spotreba pamäte a čiastočne rýchlosť) ako použitie akcie GETARCHARR. Pre kontajner vytvorený akciou GETARCHARR_TO_CNT sú použiteľné len akcie CNT_GETNR, CNT_FIND and CNT_DESTROY (príklad).
Kontajner zaniká automaticky zánikom skriptu, ktorý ho vlastní alebo vykonaním akcie CNT_DESTROY.

Veľkosť kontajnera nie je určená a je obmedzená len veľkosťou operačnej pamäte počítača.

Každá hodnota v kontajneri je jednoznačne identifikovaná pomocou tzv. kľúča.
Hodnoty je možné do kontajnera ľubovoľne vkladať, vyhľadávať, prezerať a mazať. Hodnoty vkladané do kontajnera môžu byť ľubovoľného typu (Int, Bool, Text, Real, Time), prípadne štruktúry (celá štruktúrovaná premenná, riadok, ...). Typ hodnoty kľúča musí byť Int, Bool, Text, Real alebo Time, pričom platí, že všetky kľúče v kontajneri musia byť rovnakého typu.

Prácu s dátovým kontajnerom zabezpečujú akcie uvedené v dokumente Akcie v skriptoch.


Prenos dátových kontajnerov medzi bežiacimi ESL skriptami

Prenos kontajnerov je možný pomocou RPC procedúr. V deklarácii RPC procedúry je potrebné označiť parameter, reprezentujúci handle na kontajner, špeciálnym typom CNT_HANDLE. Algoritmus je podmienený existenciou dátových kontajnerov. Ak handle na dátový kontajner je neplatná hodnota alebo ukazuje na neexistujúci dátový kontajner, algoritmus skončí s chybou.
Hodnota lokálnych premenných typu CNT_HANDLE je interpretovaná ako celočíselná (INT).

Deklarácia RPC procedúry:


  RPC PROCEDURE ProcName [([IN]  CNT_HANDLE paramName1[,paramName2, ...] [IN]  CNT_HANDLE paramName3]...)] 

 ;akcie
 
 END ProcName 

Poznámky:

Akcie v skriptoch