Table des matières

Modules standards W

Fonctions communes

Tous les modules possèdent obligatoirement 4 fonctions :

  1. init ⇒ pour initialiser l'état interne du module (allocation mémoire si besoin, etc.). Appelé automatiquement au premier appel de fonction du module
  2. end ⇒ pour libérer les ressources allouées dans init. Appelé automatiquement à la terminaison du programme
  3. vers(version) ⇒ renvoie la version en cours du module (variable version Number ou Dynamic)
  4. error(modError, modErrorDescription) ⇒ renvoie la dernière erreur spécifique au module dans variable modError (number). Si le paramètre modErrorDescription (chaine) est présent, il contiendra en retour un libellé de l'erreur

Le pseudo module template permet de tester ces 4 fonctions. Exemple :

;
declare v
invoke template&vers(version = v)
;


cipher

Module de chiffrement et déchiffrement de données.

TODO : préciser le mode, le vecteur d'init et le padding

conv

Module permettant de faire des conversions de texte en hexadécimal et Base64.

file

Module permettant de gérer les fichiers de l'OS de l'hôte exécutant le programme en cours.

hash

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.

json

NOTA : module/doc à revoir (treefetch et print)

lex

Module permettant de faire des analyses syntaxiques sur des chaines, selon des règles données en paramètre.

lzw

Module permettant de compresser et décompresser des données, algorithme LZW compatible au format lzw utilisé dans les fichiers PDF.

pdf

NOTA : revoir la gestion des numéros des images (del_image change les numéros)

Liste des fontes ⇒

Courier1
Courier_Bold2
Courier_BoldOblique3
Courier_Oblique4
Helvetica5
Helvetica_Bold6
Helvetica_BoldOblique7
Helvetica_Oblique8
Times_Roman9
Times_Bold10
Times_Italic11
Times_BoldItalic12
Symbol13
ZapfDingbats14

random

Module permettant de générer des nombres pseudo-aléatoires, algorithme Mersenne twister.

shm

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.

sock

Module gérant la communication sockets, côté serveur et côté client. Les données transitent en clair.

wssh

Module basé sur lib_ssh permettant l'accès sécurisé à un serveur.

Pour l'exécution de commandes ponctuelles, le workflow typique d'exécution est le suivant :

;
invoke wssh&openSession(host, user, pwd)
;
; do something
;
invoke wssh&execChannel(cmd, res, timeout)
;
; do another thing
;
invoke wssh&execChannel(cmd, res, timeout)
;
; terminate
invoke wssh&endSession
;

Pour l'exécution de plusieurs commandes à la suite les unes des autres, tel une émulation de terminal distant, voici le workflow à utiliser :

;
invoke wssh&openSession(host, user, pwd)
invoke wssh&openChannel
;
; read login information
invoke wssh&readChannel(res, timeout)
;
loop
   ;
   invoke wssh&writeChannel(cmd)
   ;
   invoke wssh&readChannel(res, timeout)
   ;
endloop
;
invoke wssh&closeChannel
; terminate
invoke wssh&endSession
;


system

Module gérant les liens avec le shell et l'OS hôte.

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. Nota : TU, UTC et GMT ont la même signification ici : temps universel méridien de Greenwich.


Liste des caractères assurant le formatage des timedate (paramètres stringFormat et timedateFormat) :

  A Y : annee sur 4 chiffres
  a y : annee sur 2 chiffres ( 0 => 2000 )
  M   : mois sur 2 chiffres
  L   : mois sur 3 lettres (RFC822/5322) Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
  J D : jour sur 2 chiffres
  l   : jour de la semaine sur 3 lettres (RFC822/5322) Mon Tue Wed Thu Fri Sat Sun
  h   : heure sur 2 chiffres
  m   : minutes sur 2 chiffres
  S   : secondes sur 2 chiffres avec les fractions de secondes (de 0 a 7 decimales), exemple "12,456" ou "01.1234567" (les fractions de secondes sont ignorees et ne sont pas memorisees)
  s   : secondes sur 2 chiffres
  F   : fuseau horaire, soit "Z" pour UTC, soit "+/-hh:mm" heures et minutes en plus ou moins, exemples "+01:00" "-02:30" etc.
  f   : zone (RFC822/5322) UT GMT EST EDT CST CDT MST MDT PST PDT
                           0  0   -5  -4  -6  -5  -7  -6  -8  -7
  g   : zone (RFC822/5322 militaire) (1,1,a-ik-zA-IK-Z) ; A à M : -1 à -12 ; N à Y : +1 à +12 ; Z = UTC
  n   : zone numerique (1,1,+-) (4,4,0-9) : +0000 pour UTC, +0200, -0100, etc.

Nota : le module ignore les fractions de secondes (en entrée) et n'en affiche pas en sortie (même avec le formatage S)