Bopc est un container d'objets pouvant être reconnus par lui, présentement il reconnait comme objets les container bopc, les hashs boph, les listes bopl et les piles bops.
Ces différents objets doivent suivre un certain protocole pour être reconnus par Bopc, cela ne fait pas partie de l'API décrite ici, les méthodes de création d'objets sont sujettes à changement et ne seront stabilisée que dans une prochaine version.
Par l'intermédiaire de ce container, il est possible d'appliquer des fonctions aux objets qu'il contient. Par exemple, détruire le container revient à détruire en même temps les objets qu'il contient en suivant leur méthode de destruction.
Bops utilise principalement 1 type (typedef de structures) de données :
Elles permettent de créer/supprimer des containers, de placer des objets dans ces containers et de les en enlever, d'appliquer des fonctions aux objets que ce container contient.
Ce concept de container est très simple, on peut le comparer à un sac mais pas à une valise. Il s'agit plutôt d'un sac souple comme on en délivrait naguère dans les épiceries, la différence étant que l'on peut mettre un sac souple dans un autre sac souple alors que l'on ne peut mettre une valise dans une valise du même modèle.
On peut mettre dans un container tout objet ayant une poignée (handle) qu'il est capable de saisir, pour l'instant des hashs, des listes, des stacks et d'autres containers du même modèle.
L'API est appelée à se developper, elle ne comporte pour l'instant que des fonctions minimales.
Allocation/suppression d'un container.
accès au container et à ses éléments.
Allocation/suppression d'un container.
accès au container et à ses éléments.
#BEGIN LIST
# Container higher at 0x804a008
# List-Object ma-liste1 at 0x804a050
list at 0x804e780
list at 0x804e7b0
list at 0x804e7e0
# Hash mon-hash 1 at 0x804a0b0
Bucket size 1024
# Container cont 1 at 0x8050688
# Stack stack 1.1 at 0x8054798
Primary size 506, Secondary size 511
# List-Object list-object at 0x80557b8
list at 0x8055830
list at 0x8055860
# List-Object list-object 2 at 0x8055878
list at 0x8058d70
list at 0x8058da0
# Stack stack 1 at 0x80558d8
Primary size 666, Secondary size 666
#END LIST