===== Modules standards W ===== ==== Fonctions communes ==== Tous les modules possèdent obligatoirement 4 fonctions : - ''init'' => pour initialiser l'état interne du module (allocation mémoire si besoin, etc.). Appelé automatiquement au premier appel de fonction du module - ''end'' => pour libérer les ressources allouées dans ''init''. Appelé automatiquement à la terminaison du programme - ''vers(n)'' => renvoi la version en cours du module (variable Number ou Dynamic) - ''error(n)'' => renvoi la dernière erreur spécifique au module (variable Number) ==== file ==== Module permettant de gérer les fichiers de l'OS de l'hôte exécutant le programme en cours. * ''get(path, contenu)'' : lit le fichier, dont le chemin complet est donné dans ''path'', et renvoi son contenu dans ''contenu''. Renvoi //vide// si le fichier est inconnu. * ''set(path, contenu)'' : écrit la variable Dynamic ''contenu'' dans le fichier dont le chemin complet est donné dans ''path''. Génère une exception si le chemin est inconnu, inaccessible, ou si les données ne peuvent pas être écrites (droits,...) * ''size(path, lg)'' : renvoi la taille, dans la variable Number ''lg'' du fichier dont le chemin complet est donné par ''path'' * ''dir(data)'' : prend en compte le chemin donné par ''data'' et renvoi, dans la même variable, la liste des fichiers et répertoires trouvés dans le répertoire indiqué, en multi-champs. Les fichiers //spéciaux// ne sont pas retournés (Unix seulement), ni les pseudo fichiers ''.'' et ''..'' ==== hash ==== Module permettant de calculer différents //hash// de données, selon divers algorithmes. * ''MD2(data, hash)'' : calcul le hash selon l'algorithme MD2 des données fournies dans ''data'' et renvoi le résultat dans la variable ''hash'' * ''MD4(data, hash)'' : calcul le hash selon l'algorithme MD4 des données fournies dans ''data'' et renvoi le résultat dans la variable ''hash'' ==== json ==== * ''decode()'' * ''print()'' * ''treeFetch()'' ==== lzw ==== Module permettant de compresser et décompresser des données, algorithme //LZW// compatible au format lzw utilisé dans les fichiers PDF. * ''set(data)'' : compresse les données contenues dans la variable Dynamic ''data'', et renvoi dans la même variable les données compressées * ''get(data)'' : décompresse les données fournies dans la variable Dynamic ''data'', et renvoi dans la même variable les données en clair ==== pdf ==== * ''beginDoc()'' * ''endDoc()'' * ''addPage()'' * ''addText()'' * ''addGraph()'' * ''addImage()'' * ''delImage()'' * ''loadImage()'' * ''listing()'' ==== random ==== Module permettant de générer des nombres pseudo-aléatoires, algorithme //Mersenne twister//. * ''setSeed(n)'' : utilise le nombre ''n'' donné, pour initialiser le générateur de nombres pseudo-aléatoires * ''get(n)'' : renvoi dans ''n'' le prochain nombre pseudo-aléatoire calculé par le générateur (nombre entier) ==== shm ==== * ''get()'' * ''set()'' ==== system ==== Module gérant les liens avec le shell et l'OS hôte. * ''execute(cmd, ret, [capturing])'' : execute la commande OS ''cmd'' dans un shell. Renvoi le code retour de la commande dans ''ret''. SI le 3ème paramètre ''capturing'' est fourni, il contient en retour la sortie générée par la commande dans le terminal (sortie standard) * ''getEnv(var, result)'' : renvoi dans ''result'' le contenu de la variable d'environnement (dans la session courante) nommée ''var''. Génère l'exception EXMOD_SYSTEM_UNKNOWNVARENV si la variable d'environnement est inconnue * ''createEnv(var, valeur)'' : créé la variable d'environnement nommée ''var'' dans la session courante, avec la valeur ''valeur''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est déjà présente (utiliser ''updateEnv'' dans ce cas) * ''updateEnv(var, valeur)'' : met à jour la variable d'environnement ''var'' avec la valeur ''valeur''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue de la session en cours. * ''deleteEnv(var)'' : supprime la variable d'environnement nommée ''var'' de la session courante. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue * ''getOS(n)'' : renvoi un code indiquant le type de l'OS hôte du programme en cours : Windows, Linux... * ''getHostname(nom, ip)'' : renvoi le nom (dans ''nom'') et l'addresse ip (dans ''ip'') de l'hôte qui exécute le programme en cours * ''fork'', ''wait'', ''kill'' : A FINIR * ''sleep(n)'' : endort le process en cours, pour une durée de ''n'' secondes ==== time ==== Module permettant de manipuler des horodates, en TU et temps local, de mesurer le temps passé (chrono) et de gérer des alarmes temporelles.\\ * ''startChrono'' : démarre le chronomètre, pour mesurer une durée * ''lapChrono(n)'' : donne le temps passé en secondes depuis le dernier appel de start ou lap (variable Number) * ''setUTC(hash, format, date)'' : mémorise dans la hashtable ''hash'' la date UTC passée dans ''date'' selon le format ''format''. Le résultat est stocké dans ''hash.timestamp'' et ''hash.jetlag'' * ''setLocal(hash, format, date)'' : idem setUTC ci-dessus mais sur une date fournie dans le fuseau local * ''setNowLocal(hash)'' : mémorise la date locale en cours, résultat dans la hashtable ''hash'' idem ci-dessus * ''setNowUTC(hash)'' : idem setNowLocal ci-dessus maus sur une date fournie en UTC * ''set(hash, format, date)'' : mémorise dans la hashtable ''hash'' la date passée dans ''date'' selon le format ''format'', format qui indique le fuseau de la date fournie, selon la norme ISO8601 * ''getUTC(hash, format, date)'' : renvoi dans ''date'' la date mémorisée dans la hashtable ''hash'', selon le format défini dans ''format'' et en UTC * ''getLocal(hash, format, date)'' : idem getUTC ci-dessus mais renvoi la date dans le fuseau local * ''get(hash, format, date)'' : idem ci-dessus, mais c'est le format qui indique si la date retournée est en UTC ou dans un fuseau local, format à la norme ISO8601 * ''alarmUTCHM(hhmm, fin, delai)'' : déclare une alarme quotidienne, à déclencher à l'heure ''hhmm'' en heure UTC. Renvoi le timestamp de fin dans ''inf'' et le delai entre chaque alarme dans ''delai'' * ''alarmLocalHM(hhmm, fin, delai)'' : idem alarmUTCHM ci-dessus, mais l'heure donnée est dans le fuseau local * (A FINIR)