| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| refmodule [2026/10/18 14:04] – root | refmodule [2026/10/18 14:47] (Version actuelle) – [random] root |
|---|
| Module permettant de gérer les fichiers de l'OS de l'hôte exécutant le programme en cours. | Module permettant de gérer les fichiers de l'OS de l'hôte exécutant le programme en cours. |
| |
| * ''get(path, content)'' : lit le fichier, dont le chemin complet est donné dans ''path'', et renvoie son contenu dans ''content''. Renvoie //vide// si le fichier est inconnu. | * ''get(path, content)'' : lit le fichier, dont le chemin complet est donné dans ''path'', et renvoie son contenu dans ''content''. Génère une exception si le fichier est inconnu ou inaccessible. |
| * ''set(path, content)'' : écrit la variable Dynamic ''content'' 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,…) | * ''set(path, content)'' : écrit la variable Dynamic ''content'' 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, length)'' : renvoie la taille, dans la variable Number ''length'' du fichier dont le chemin complet est donné par ''path'' | * ''size(path, length)'' : renvoie la taille, dans la variable Number ''length'' du fichier dont le chemin complet est donné par ''path'' |
| * ''delete(path)'' : supprimer le fichier dont le chemin complet est donné dans ''path''. Génère une exception si le fichier ne peut pas être supprimé. | * ''delete(path)'' : supprime le fichier dont le chemin complet est donné dans ''path''. Génère une exception si le fichier ne peut pas être supprimé. |
| * ''rename(oldPath, newPath)'' : renomme/déplace le fichier ''oldPath'' en ''newPath''. Génère une exception en cas d'erreur (droits, FS différents, chemin cible inexistant). | * ''rename(oldPath, newPath)'' : renomme/déplace le fichier ''oldPath'' en ''newPath''. Génère une exception en cas d'erreur (droits, FS différents, chemin cible inexistant). |
| * ''append(path, content)'' : écrit la variable Dynamic ''content'' à la fin du fichier dont le chemin complet est donné dans ''path''. S'il n'existait pas, le fichier est créé. Génère une exception en cas d'erreur. | * ''append(path, content)'' : écrit la variable Dynamic ''content'' à la fin du fichier dont le chemin complet est donné dans ''path''. S'il n'existait pas, le fichier est créé. Génère une exception en cas d'erreur. |
| * ''dir(path, fileList)'' : prend en compte le chemin donné par ''path'' et renvoi, dans la variable ''fileList'' , 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 ''..'' | * ''dir(path, fileList)'' : prend en compte le chemin donné par ''path'' et renvoie, dans la variable ''fileList'' , 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 ''..'' |
| |
| |
| Module permettant de calculer différents //hash// de données, selon divers algorithmes. Sauf indication contraire, le résultat ''hashedText'' est le hash hexadécimal, mis en chaine de caractères. | Module permettant de calculer différents //hash// de données, selon divers algorithmes. Sauf indication contraire, le résultat ''hashedText'' est le hash hexadécimal, mis en chaine de caractères. |
| |
| * ''MD2(plaintext, hashedText)'' : calcul le hash selon l'algorithme MD2 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' | * ''MD2(plaintext, hashedText)'' : calcule le hash selon l'algorithme MD2 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' |
| * ''MD4(plaintext, hashedText)'' : calcul le hash selon l'algorithme MD4 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' | * ''MD4(plaintext, hashedText)'' : calcule le hash selon l'algorithme MD4 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' |
| * ''MD5(plaintext, hashedText)'' : calcul le hash selon l'algorithme MD5 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' | * ''MD5(plaintext, hashedText)'' : calcule le hash selon l'algorithme MD5 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' |
| * ''Sha1(plaintext, hashedText)'' : calcul le hash selon l'algorithme Sha1 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' | * ''Sha1(plaintext, hashedText)'' : calcule le hash selon l'algorithme Sha1 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' |
| * ''Adler32(plaintext, hashedText)'' : calcul le hash selon l'algorithme Adler32 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' | * ''Adler32(plaintext, hashedText)'' : calcule le hash selon l'algorithme Adler32 des données fournies dans ''plaintext'' et renvoie le résultat dans la variable ''hashedText'' |
| |
| |
| * ''decode(jsonText, extractedKey, extractedValue)'' : réalise le décodage du contenu json présent dans la variable chaîne ''jsonText'', et renvoie l'ensemble des clés/valeurs décodées dans les chaînes ''extractedKey'' et ''extractedValue''. Les informations globales liées au contenu json qui vient d'être décodé restent mémorisées dans le module. | * ''decode(jsonText, extractedKey, extractedValue)'' : réalise le décodage du contenu json présent dans la variable chaîne ''jsonText'', et renvoie l'ensemble des clés/valeurs décodées dans les chaînes ''extractedKey'' et ''extractedValue''. Les informations globales liées au contenu json qui vient d'être décodé restent mémorisées dans le module. |
| * ''print(extractedKey, extractedValue, prettyPrint)'' : restitue de manière lisible dans la variable chaîne ''prettyPrint'' le contenu json déjà décodé dans les 2 chaines ''extractedKey'' et ''extractedValue''. | * ''print(extractedKey, extractedValue, prettyPrint)'' : restitue de manière lisible dans la variable chaîne ''prettyPrint'' le contenu json déjà décodé dans les 2 chaines ''extractedKey'' et ''extractedValue''. |
| * ''treeFetch(fetchParameters, done)'' : récupère une série de clés, en utilisant les informations données par la hashtable ''fetchParameters''. La variable Numeric ''done'' renvoie ''@true'' quand la récupération est terminée, ''@false'' sinon. La hashtable ''fetchParameters'' doit contenir en entrée les deux chaines issues du décodage json. ''fetchParameters.DecodedKey'' doit recevoir ''extractedKey'' et ''fetchParameters.DecodedValue'' doit recevoir ''extractedValue''. | * ''treeFetch(fetchParameters, done)'' : récupère une série de clés, en utilisant les informations données par la hashtable ''fetchParameters''. La variable Number ''done'' renvoie ''@true'' quand la récupération est terminée, ''@false'' sinon. La hashtable ''fetchParameters'' doit contenir en entrée les deux chaines issues du décodage json. ''fetchParameters.DecodedKey'' doit recevoir ''extractedKey'' et ''fetchParameters.DecodedValue'' doit recevoir ''extractedValue''. |
| |
| |
| |
| * ''set(plaintextThenCompressed)'' : compresse les données contenues dans la variable Dynamic ''plaintextThenCompressed'', et renvoie dans la même variable les données compressées, compatibles Lzw-PDF. | * ''set(plaintextThenCompressed)'' : compresse les données contenues dans la variable Dynamic ''plaintextThenCompressed'', et renvoie dans la même variable les données compressées, compatibles Lzw-PDF. |
| * ''get(compressedThenPlaintext, reverse)'' : décompresse les données fournies dans la variable Dynamic ''compressedThenPlaintext'', et renvoie dans la même variable les données en clair. Mettre le paramètre ''reverse'' à ''@true'' pour décompresser des données spécifiquement au format GIF ; par défaut à ''@false'' (compatible Lzw-PDF). | * ''get(compressedThenPlaintext, [reverse])'' : décompresse les données fournies dans la variable Dynamic ''compressedThenPlaintext'', et renvoie dans la même variable les données en clair. Mettre le paramètre ''reverse'' à ''@true'' pour décompresser des données spécifiquement au format GIF ; par défaut à ''@false'' (compatible Lzw-PDF). |
| |
| |
| NOTA : revoir la gestion des numéros des images (del_image change les numéros) | NOTA : revoir la gestion des numéros des images (del_image change les numéros) |
| |
| * ''beginDoc(pdfParameterSet)'' : démarre un nouveau document Pdf. ''parameterSet'' est une hashtable qui doit contenir les champs suivants, permettant d'initialiser le document : | * ''beginDoc(pdfParameterSet)'' : démarre un nouveau document Pdf. ''pdfParameterSet'' est une hashtable qui doit contenir les champs suivants, permettant d'initialiser le document : |
| * ''.Title'' : titre du document (string) | * ''.Title'' : titre du document (string) |
| * ''.Fonts'' : liste des fontes qui seront utilisées dans le document, chaîne contenant les noms des fontes en multi-champs (cf. tableau, le n° associé est le compteur interne du format PDF, à ignorer) | * ''.Fonts'' : liste des fontes qui seront utilisées dans le document, chaîne contenant les noms des fontes en multi-champs (cf. tableau, le n° associé est le compteur interne du format PDF, à ignorer) |
| * ''.Format'' : nombre donnant la taille de chaque page - A4P A4L A3P A3L (1 2 3 4) | * ''.Format'' : nombre donnant la taille de chaque page - A4P A4L A3P A3L (1 2 3 4) |
| * ''endDoc(pdfContent)'' : clôture le document Pdf en cours, et renvoie tout son contenu dans la chaine ''pdfContent'' | * ''endDoc(pdfContent)'' : clôture le document Pdf en cours, et renvoie tout son contenu dans la chaine ''pdfContent'' |
| * ''addPage()'' : valide l'ajout d'une page au document Pdf en cours, à appeler après avoir ajouter les éléments de la page grâce aux fonctions qui suivent. Les pages sont toutes compactées avec l'algorithme Lzw. | * ''addPage'' : valide l'ajout d'une page au document Pdf en cours, à appeler après avoir ajouté les éléments de la page grâce aux fonctions qui suivent. Les pages sont toutes compactées avec l'algorithme Lzw. |
| * ''addText(pdfParameterSet, string)'' : ajoute à la page courante la chaine ''string'' selon le formatage décrit dans la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : | * ''addText(pdfParameterSet, string)'' : ajoute à la page courante la chaine ''string'' selon le formatage décrit dans la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : |
| * ''.X'', ''.Y'', ''.W'', ''.H'' : position x,y et dimension w,h du cadre englobant la chaîne | * ''.X'', ''.Y'', ''.W'', ''.H'' : position x,y et dimension w,h du cadre englobant la chaîne |
| * ''loadImage(image, format)'' : charge dans le module, pour un usage ultérieur, l'image dont le contenu est passé dans la chaîne ''image''. La première image chargée porte le numéro 1, etc. Formats supportés, chaîne ''format'' : //BMP// (32bpp) et //GIF//. | * ''loadImage(image, format)'' : charge dans le module, pour un usage ultérieur, l'image dont le contenu est passé dans la chaîne ''image''. La première image chargée porte le numéro 1, etc. Formats supportés, chaîne ''format'' : //BMP// (32bpp) et //GIF//. |
| * ''delImage(imageIndex)'' : supprime l'image numéro ''imageIndex'' du module ; elle ne pourra plus être utilisée par la suite (NOTA pbm de numéro avec suppression) | * ''delImage(imageIndex)'' : supprime l'image numéro ''imageIndex'' du module ; elle ne pourra plus être utilisée par la suite (NOTA pbm de numéro avec suppression) |
| * ''listing(pdfParameterSet, textThenPdfContent)'' : créé un document Pdf, de type //listing//, avec les données textuelle de ''textThenPdfContent'' et renvoie le contenu du Pdf généré dans ''textThenPdfContent''. Les éléments permettant de créer le listing sont donnés par la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : | * ''listing(pdfParameterSet, textThenPdfContent)'' : crée un document Pdf, de type //listing//, avec les données textuelle de ''textThenPdfContent'' et renvoie le contenu du Pdf généré dans ''textThenPdfContent''. Les éléments permettant de créer le listing sont donnés par la hashtable ''pdfParameterSet'' qui doit contenir les champs suivants : |
| * ''.Title'' : titre du listing (texte) | * ''.Title'' : titre du listing (texte) |
| * ''.Format'' : nombre donnant le format de la page à utiliser : A4P A4L (1 2) | * ''.Format'' : nombre donnant le format de la page à utiliser : A4P A4L (1 2) |
| |
| * ''setSeed(seedValue)'' : utilise le nombre ''seedValue'' donné, pour initialiser le générateur de nombres pseudo-aléatoires | * ''setSeed(seedValue)'' : utilise le nombre ''seedValue'' donné, pour initialiser le générateur de nombres pseudo-aléatoires |
| * ''get(nextRandomNumber)'' : renvoie dans ''nextRandomNumber'' le prochain nombre pseudo-aléatoire calculé par le générateur (nombre entier) | * ''get(nextRandomNumber)'' : renvoie dans ''nextRandomNumber'' le prochain nombre pseudo-aléatoire calculé par le générateur (nombre entier compris entre 0 et 4 294 967 295) |
| |
| |
| //NOTA// : module à finir, revoir doc (newprocessshmreader/writer) Module gérant la communication inter-processus, basée sur des messages textes. Chaque processus possède une //queue// qui permet de recevoir les messages émis par les autres processus. | //NOTA// : module à finir, revoir doc (newprocessshmreader/writer) Module gérant la communication inter-processus, basée sur des messages textes. Chaque processus possède une //queue// qui permet de recevoir les messages émis par les autres processus. |
| |
| * ''get(content)'' : renvoie dans ''content'' le prochain message reçu depuis la queue interne du processus en cours. S'il n'y a pas de message à lire, renvoie //vide//. | * ''get(content)'' : renvoie dans ''content'' le prochain message reçu depuis la queue interne du processus en cours. S'il n'y a pas de message à lire, renvoie //vide//. Si le programme n'a pas de nom (identifiant mis à la suite de ''begin'' ou ''background''), seul le premier process lisant ces messages pourra les recevoir, via un nom vide. Les autres ne les recevront pas car en interne la zone mémoire est déjà utilisée. |
| * ''set(textMessage, processName)'' : envoi le message texte ''textMessage'' au processus identifié par ''processName''. L'identifiant d'un process est le nom donné au module principal dans l'instruction ''begin'' ou ''background'' du programme W. | * ''set(textMessage, processName)'' : envoie le message texte ''textMessage'' au processus identifié par ''processName''. L'identifiant d'un process est le nom donné au module principal dans l'instruction ''begin'' ou ''background'' du programme W. |
| |
| |
| Module gérant la communication sockets, côté //serveur// et côté //client//. Les données transitent __en clair__. | Module gérant la communication sockets, côté //serveur// et côté //client//. Les données transitent __en clair__. |
| |
| * ''server(portNumber)'' : créé un point d'entrée //serveur// sur le n° de ''portNumber'' indiqué (n° autorisés : 1024 à 65535 uniquement). Le module ne gère qu'un seul serveur actif au même moment. | * ''server(portNumber)'' : crée un point d'entrée //serveur// sur le n° de ''portNumber'' indiqué (n° autorisés : 1024 à 65535 uniquement). Le module ne gère qu'un seul serveur actif au même moment. |
| * ''wait(timeout, clientSock)'' : attend une demande de connexion entrante depuis un client. Si une demande de connexion est acceptée, ''clientSock'' contient en retour un id de connexion, à mémoriser car il servira a identifier la connexion à utiliser lors des lectures ''get'' et écritures ''set'' entre ce client et le serveur. Si aucune connexion n'est demandée au bout du délai ''timeout'' (en secondes), l'id renvoyé dans ''clientSock'' est négatif, confirmant qu'aucune de demande de connexion n'est arrivée dans le délai indiqué. Le module gère plusieurs connexions entrantes simultanées. | * ''wait(timeout, clientSock)'' : attend une demande de connexion entrante depuis un client. Si une demande de connexion est acceptée, ''clientSock'' contient en retour un id de connexion, à mémoriser car il servira a identifier la connexion à utiliser lors des lectures ''get'' et écritures ''set'' entre ce client et le serveur. Si aucune connexion n'est demandée au bout du délai ''timeout'' (en secondes), l'id renvoyé dans ''clientSock'' est négatif, confirmant qu'aucune de demande de connexion n'est arrivée dans le délai indiqué. Le module gère plusieurs connexions entrantes simultanées. |
| * ''stopServer'' : supprime le point d'entrée serveur créé avec ''server''. | * ''stopServer'' : supprime le point d'entrée serveur créé avec ''server''. |
| * ''connect(host, portNumber, socket)'' : initie une connexion socket au serveur ''host'' sur le n° de ''portNumber'' (sans limitation de numéro). ''host'' peut contenir un nom de serveur, mais aussi une adresse IP v4. Quand la demande est acceptée par le serveur, ''socket'' contient en retour un id de connexion, à mémoriser car il servira a identifier la connexion à utiliser lors des lectures ''get'' / écritures ''set'' entre ce client et le serveur. Quand la demande est refusée, une exception est générée. Le module gère plusieurs connexions sortantes simultanées. | * ''connect(host, portNumber, socket)'' : initie une connexion socket au serveur ''host'' sur le n° de ''portNumber'' (sans limitation de numéro). ''host'' peut contenir un nom de serveur, mais aussi une adresse IP v4. Quand la demande est acceptée par le serveur, ''socket'' contient en retour un id de connexion, à mémoriser car il servira a identifier la connexion à utiliser lors des lectures ''get'' / écritures ''set'' entre ce client et le serveur. Quand la demande est refusée, une exception est générée. Le module gère plusieurs connexions sortantes simultanées. |
| * ''stop(socket)'' : arrête la connexion identifiée par l'id ''socket'', que ce soit la partie cliente donnée par ''connect'' aussi bien que la partie serveur donnée par ''wait''. | * ''stop(socket)'' : arrête la connexion identifiée par l'id ''socket'', que ce soit la partie cliente donnée par ''connect'' aussi bien que la partie serveur donnée par ''wait''. |
| * ''get(socket, data, timeout)'' : lit les données venant de l'autre côté de la connexion identifiée par l'id ''socket''. Les données lues sont renvoyées dans la chaîne ''data''. Si aucune donnée d'est disponible au bout du délai ''timeout'' donné, (en secondes), la chaîne ''data'' est renvoyée //vide//. | * ''get(socket, data, timeout)'' : lit les données venant de l'autre côté de la connexion identifiée par l'id ''socket''. Les données lues sont renvoyées dans la chaîne ''data''. Si aucune donnée n'est disponible au bout du délai ''timeout'' donné, (en secondes), la chaîne ''data'' est renvoyée //vide//. |
| * ''set(socket, data)'' : écrit les données de ''data'' sur la connexion identifiée par l'id ''socket''. | * ''set(socket, data)'' : écrit les données de ''data'' sur la connexion identifiée par l'id ''socket''. |
| * ''getHostname(name, ip)'' : renvoie le nom (dans ''name'') et l'addresse ip (dans ''ip'') de l'hôte qui exécute le programme en cours. | * ''getHostname(name, ip)'' : renvoie le nom (dans ''name'') et l'adresse ip (dans ''ip'') de l'hôte qui exécute le programme en cours. |
| |
| |
| * ''openSession(host, username, password)'' : ouvre une connexion sécurisée vers le serveur ''host'' (nom ou adresse IP), en utilisant l'authentification ''username'' /''password'' | * ''openSession(host, username, password)'' : ouvre une connexion sécurisée vers le serveur ''host'' (nom ou adresse IP), en utilisant l'authentification ''username'' /''password'' |
| * ''endSession'' : ferme la connexion courante | * ''endSession'' : ferme la connexion courante |
| * ''execChannel(command, response, timeout)'' : exécute la commande ''command'' sur le serveur distant, et lit la réponse dans ''response'', en utilisant la paramètre ''timeout'' comme délai de lecture (en seconde). | * ''execChannel(command, response, timeout)'' : exécute la commande ''command'' sur le serveur distant, et lit la réponse dans ''response'', en utilisant le paramètre ''timeout'' comme délai de lecture (en seconde). |
| * ''openChannel'' : ouvre un //pseudo terminal// sur le serveur distant. | * ''openChannel'' : ouvre un //pseudo terminal// sur le serveur distant. |
| * ''closeChannel'' : termine le //pseudo terminal// distant. | * ''closeChannel'' : termine le //pseudo terminal// distant. |
| * ''readChannel(response, timeout)'' : lit la réponse du serveur distant dans ''response'', en utilisant ''timeout'' comme délai de lecture (en seconde). | * ''readChannel(response, timeout)'' : lit la réponse du serveur distant dans ''response'', en utilisant ''timeout'' comme délai de lecture (en seconde). |
| * ''writeChannel(command)'' : exécute la commande ''command'' sur le serveur distant | * ''writeChannel(command)'' : exécute la commande ''command'' sur le serveur distant |
| * ''openSftp'' : ouvre un canal de type //transfer// avec le serveur distant. | * ''openSftp'' : ouvre un canal de type //transfert// avec le serveur distant. |
| * ''closeSftp'' : ferme le canal de type //transfert// mais laisse la connexion au serveur ouverte. | * ''closeSftp'' : ferme le canal de type //transfert// mais laisse la connexion au serveur ouverte. |
| * //to be continued…// | * //to be continued…// |
| Pour l'exécution de commandes ponctuelles, le worflow typique d'exécution est le suivant : | Pour l'exécution de commandes ponctuelles, le workflow typique d'exécution est le suivant : |
| |
| <code wlang> | <code wlang> |
| endloop | endloop |
| ; | ; |
| | invoke wssh&closeChannel |
| ; terminate | ; terminate |
| invoke wssh&endSession | invoke wssh&endSession |
| Module gérant les liens avec le shell et l'OS hôte. | Module gérant les liens avec le shell et l'OS hôte. |
| |
| * ''execute(command, returnCode, [capturing])'' : execute la commande OS ''command'' dans un shell. Renvoie le code retour de la commande dans ''returnCode''. 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) | * ''execute(command, returnCode, [capturing])'' : exécute la commande OS ''command'' dans un shell. Renvoie le code retour de la commande dans ''returnCode''. 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(varName, value)'' : renvoie dans ''value'' le contenu de la variable d'environnement (dans la session courante) nommée ''varName''. Génère l'exception EXMOD_SYSTEM_UNKNOWNVARENV si la variable d'environnement est inconnue | * ''getEnv(varName, value)'' : renvoie dans ''value'' le contenu de la variable d'environnement (dans la session courante) nommée ''varName''. Génère l'exception EXMOD_SYSTEM_UNKNOWNVARENV si la variable d'environnement est inconnue |
| * ''createEnv(varName, value)'' : créé la variable d'environnement nommée ''varName'' dans la session courante, avec la valeur ''value''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est déjà présente (utiliser ''updateEnv'' dans ce cas) | * ''createEnv(varName, value)'' : crée la variable d'environnement nommée ''varName'' dans la session courante, avec la valeur ''value''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est déjà présente (utiliser ''updateEnv'' dans ce cas) |
| * ''updateEnv(varName, value)'' : met à jour la variable d'environnement ''varName'' avec la valeur ''value''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue de la session en cours. | * ''updateEnv(varName, value)'' : met à jour la variable d'environnement ''varName'' avec la valeur ''value''. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue de la session en cours. |
| * ''deleteEnv(varName)'' : supprime la variable d'environnement nommée ''varName'' de la session courante. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue | * ''deleteEnv(varName)'' : supprime la variable d'environnement nommée ''varName'' de la session courante. Génère l'exception EXMOD_SYSTEM_SETENV si la variable est inconnue |
| * ''getOS(OScode)'' : renvoie un code, dans le paramètre ''OScode'', indiquant le type de l'OS hôte du programme en cours (de type chaîne) : //Windows//, //Linux// (__différent__ du contenu de la variable système //@os//) | * ''getOS(OScode)'' : renvoie un code, dans le paramètre ''OScode'', indiquant le type de l'OS hôte du programme en cours (de type chaîne) : //Windows//, //Linux// (__différent__ du contenu de la variable système //@os//) |
| * ''sendSignal(pid, signalNumber)'' : envoi le signal numéro ''signalNumber'' au processus identifié par son numéro ''pid''. Seuls les 3 signaux SIGTERM, SIGINT, SIGUSR1 sont pris en charge. Les autres sont ignorés. Fonction compatible Unix/Windows mais sous Windows, ce sont des évènements qui sont générés, pas des signaux ; SIGTERM et SIGINT génèrent un évènement ''Global\\wterm<pid>'' et SIGUSR1 génère un évènement ''Global\\wdebug<pid>'' | * ''sendSignal(pid, signalNumber)'' : envoie le signal numéro ''signalNumber'' au processus identifié par son numéro ''pid''. Seuls les 3 signaux SIGTERM, SIGINT, SIGUSR1 sont pris en charge. Les autres sont ignorés. Fonction compatible Unix/Windows mais sous Windows, ce sont des évènements qui sont générés, pas des signaux ; SIGTERM et SIGINT génèrent un évènement ''Global\\wterm<pid>'' et SIGUSR1 génère un évènement ''Global\\wdebug<pid>'' |
| * ''sleep(duration)'' : endort le process en cours, pour une durée de ''duration'' secondes | * ''sleep(duration)'' : endort le process en cours, pour une durée de ''duration'' secondes |
| |
| ==== time ==== | ==== 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. | Module permettant de manipuler des horodates, en TU et temps local, de mesurer le temps passé (chrono) et de gérer des alarmes temporelles. Nota : TU, UTC et GMT ont la même signification ici : temps universel méridien de Greenwich. |
| |
| * ''startChrono'' : démarre le chronomètre, pour mesurer une durée | * ''startChrono'' : démarre le chronomètre, pour mesurer une durée |
| * ''lapChrono(duration)'' : donne le temps passé en secondes depuis le dernier appel de start ou lap (variable Number ''duration'') | * ''lapChrono(duration)'' : donne le temps passé en secondes depuis le dernier appel de start ou lap (variable Number ''duration'') |
| |
| * ''set(timeParameterSet, timestamp, offset, string, stringFormat)'' : mémorise dans la hashtable ''timeParameterSet'' (obligatoire dans tous les cas) la date ; deux combinaisons de paramètres en entrée sont prises en charge, selon la présence ou non de paramètres : | * ''set(timeParameterSet, timestamp, offset, string, stringFormat)'' : mémorise dans la hashtable ''timeParameterSet'' (obligatoire dans tous les cas) la date ; deux combinaisons de paramètres en entrée sont prises en charge, selon la présence ou non de paramètres (travailler avec des paramètres nommés ici, et ne pas passer ceux à ignorer) : |
| * ''timestamp'' seul ou ''timestamp'' et ''offset'' : date passée dans ''timestamp'' (au sens Unix) et donc en TU, ou ''offset'' en plus, permettant une date locale (offset ajouté au timestamp) | * ''timestamp'' seul ou ''timestamp'' et ''offset'' : date passée dans ''timestamp'' (au sens Unix) et donc en TU, ou ''offset'' en plus, permettant une date locale (offset ajouté au timestamp) |
| * ''string'' seul (le format est le standard ISO8601 A-M-JTh:m:SF) ou ''string'' et ''stringFormat'' ; dans ce dernier cas, en l'absence du fuseau, le traitement considère que la chaine représente une date locale | * ''string'' seul (le format est le standard ISO8601 A-M-JTh:m:SF) ou ''string'' et ''stringFormat'' ; dans ce dernier cas, en l'absence du fuseau, le traitement considère que la chaine représente une date locale |
| * ''getNextActivation(name, nextTime)'' : renvoie la prochaine échéance de l'alarme //name// dans l'horodate //nextTime// (hashtable à passer à la méthode ''get'' ci-dessus comme paramètre ''timeParameterSet'' pour une sortie chaine) | * ''getNextActivation(name, nextTime)'' : renvoie la prochaine échéance de l'alarme //name// dans l'horodate //nextTime// (hashtable à passer à la méthode ''get'' ci-dessus comme paramètre ''timeParameterSet'' pour une sortie chaine) |
| * ''alarmActive(name, isActive)'' : indique en retour dans ''isActive'' si l'alarme //name// est active (//@true// alors, sinon @false), c'est à dire s'il y a encore au moins une activation à venir | * ''alarmActive(name, isActive)'' : indique en retour dans ''isActive'' si l'alarme //name// est active (//@true// alors, sinon @false), c'est à dire s'il y a encore au moins une activation à venir |
| * ''triggeredAlarm(name, triggered, reposition)'' : indique si l'alarme //name// est arrivée à échéance : renvoie //@true// dans ''triggered'' dans ce cas, sinon //@false// (une alarme inactive qui n'a plus d'occurrence renvoie toujours //@false//). Si le paramètre ''reposition'' vaut //@true//, la prochaine occurrence est recalée à une date postérieure à la date courante, en ajoutant le délai autant de fois que nécessaire. Sinon, le délai est ajouté une seule fois ; dans ce cas, si le programme à pris //du retard//, un nouvel appel de ''triggeredAlarm'' peut immédiatement renvoyer //@true//. | * ''triggeredAlarm(name, triggered, reposition)'' : indique si l'alarme //name// est arrivée à échéance : renvoie //@true// dans ''triggered'' dans ce cas, sinon //@false// (une alarme inactive qui n'a plus d'occurrence renvoie toujours //@false//). Si le paramètre ''reposition'' vaut //@true//, la prochaine occurrence est recalée à une date postérieure à la date courante, en ajoutant le délai autant de fois que nécessaire. Sinon, le délai est ajouté une seule fois ; dans ce cas, si le programme a pris //du retard//, un nouvel appel de ''triggeredAlarm'' peut immédiatement renvoyer //@true//. |
| \\ Liste des caractères assurant le formatage des //timedate// (paramètres ''stringFormat'' et ''timedateFormat'') : | \\ Liste des caractères assurant le formatage des //timedate// (paramètres ''stringFormat'' et ''timedateFormat'') : |
| |