{"id":14271,"date":"2024-05-29T13:41:19","date_gmt":"2024-05-29T11:41:19","guid":{"rendered":"https:\/\/nexvision.dev\/architecture-modulaire-software\/"},"modified":"2024-08-19T12:57:40","modified_gmt":"2024-08-19T10:57:40","slug":"architecture-modulaire-software","status":"publish","type":"page","link":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/","title":{"rendered":"Architecture modulaire Software"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"14271\" class=\"elementor elementor-14271 elementor-13680\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-a6cf75e elementor-section-height-min-height elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-items-middle\" data-id=\"a6cf75e\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t\t<div class=\"elementor-background-overlay\"><\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-no\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8d730e1\" data-id=\"8d730e1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1631f27 elementor-widget elementor-widget-heading\" data-id=\"1631f27\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Architecture modulaire Software<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ee707ee elementor-widget elementor-widget-text-editor\" data-id=\"ee707ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section data-particle_enable=\"false\" data-particle-mobile-disabled=\"false\" class=\"elementor-section elementor-top-section elementor-element elementor-element-7691e3d elementor-section-stretched elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7691e3d\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;stretch_section&quot;:&quot;section-stretched&quot;,&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-49c70de\" data-id=\"49c70de\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a262eb3 elementor-widget elementor-widget-heading\" data-id=\"a262eb3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">CLASSPATH : Notre solution SOFTWARE \u201cPr\u00eate \u00e0 customiser\u201d<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bbdd92a elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"bbdd92a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Nexvision propose un panel de briques logicielles r\u00e9guli\u00e8rement mises \u00e0 jour en fonction de l\u2019avanc\u00e9e de notre R&#038;D \u00e0 travers son ClassPath.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a7907df elementor-widget elementor-widget-image\" data-id=\"a7907df\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1150\" height=\"773\" src=\"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png\" class=\"attachment-full size-full wp-image-13733\" alt=\"\" srcset=\"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png 1150w, https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture-300x202.png 300w, https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture-1024x688.png 1024w, https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture-768x516.png 768w\" sizes=\"(max-width: 1150px) 100vw, 1150px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15c1dc4 elementor-widget elementor-widget-heading\" data-id=\"15c1dc4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Description des fonctions ClassPath<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-820b3a2 elementor-widget elementor-widget-heading\" data-id=\"820b3a2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h4 class=\"elementor-heading-title elementor-size-default\">1. Modules de base<\/h4>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b9d349d elementor-widget elementor-widget-text-editor\" data-id=\"b9d349d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>(Toutes les autres fonctions d\u00e9pendent de ces modules de base)<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ca92bf0 elementor-widget__width-initial elementor-widget elementor-widget-toggle\" data-id=\"ca92bf0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2121\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-2121\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.1 Containers<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2121\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-2121\"><ul>\n<li>Tampons circulaires : Un tampon simple \u00e0 deux t\u00eates et de taille limit\u00e9e AKA tampon circulaire\/anneau<\/li>\n<li>HashTable : Une table de hachage bas\u00e9e sur une politique et hautement optimis\u00e9e qui supporte \u00e9galement une interface it\u00e9rative.<\/li>\n<li>SizeLimitedQueue : Une file d&rsquo;attente sp\u00e9cialis\u00e9e multithread avec des \u00e9v\u00e9nements vides et pleins.<\/li>\n<li>Queue : Une file d&rsquo;attente sp\u00e9cialis\u00e9e multithread de taille illimit\u00e9e avec des \u00e9v\u00e9nements vides<\/li>\n<li>Array : Un tableau de maintien de l&rsquo;ordre simple et hautement optimis\u00e9 pour le stockage d&rsquo;objets de donn\u00e9es simples et constructibles par copie.<\/li>\n<li>IndexList : Un tableau de maintien de l&rsquo;ordre bas\u00e9 sur des pointeurs, hautement optimis\u00e9, pour stocker n&rsquo;importe quel objet.<\/li>\n<li>ChainedList : Une liste \u00e0 double lien hautement optimis\u00e9e<\/li>\n<li>Algorithmes : Recherche et tri des conteneurs ci-dessus avec l&rsquo;impl\u00e9mentation la plus efficace possible.<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2122\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-2122\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.2 Stacks<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2122\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-2122\"><ul>\n<li>FIFO\/LIFO : Une classe de pile efficace avec un composant FIFO ou LIFO.<\/li>\n<li>Bitstream : Une pile sp\u00e9cialis\u00e9e dans le bitstream qui met en m\u00e9moire tampon un bitstream et fournit une interface pratique pour en extraire des bits, en appliquant \u00e9ventuellement un traitement (d\u00e9cryptage).<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2123\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-2123\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.3 Cha\u00eenes (Les classes de cha\u00eenes de caract\u00e8res fournissent une interface commune pour acc\u00e9der au contenu de la cha\u00eene<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2123\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-2123\"><ul>\n<li>UTF-8 String : Une classe de cha\u00eene sp\u00e9cialis\u00e9e UTF-8 tr\u00e8s performante (avec RegEx, interface Fluent, conversion de type, conversion s\u00e9mantique, etc.)<\/li>\n<li>Unicode String : Une classe de cha\u00eene simple bas\u00e9e sur wchar_t qui peut convertir vers\/depuis la classe de cha\u00eene UTF-8.<\/li>\n<li>ReadOnly String : Une classe en lecture seule tr\u00e8s efficace pour l&rsquo;analyse syntaxique avec une interface fluide.<\/li>\n<li>StringArrays : Une interface de type tableau pour les cha\u00eenes de caract\u00e8res, avec division et jonction \u00e0 la Python.<\/li>\n<li>BoyerMoore : Une classe de recherche de texte utilisant BoyerMoore\/TurboBoyerMoore pour les textes inconnus.<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2124\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-2124\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.4 Arbres<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2124\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-2124\"><ul>\n<li>TernarySearchTree : Un arbre de recherche de cha\u00eenes tr\u00e8s efficace O(log N) pour les dictionnaires avec des fonctions de recherche approximatives (Levenshtein, Hamming, etc.)<\/li>\n<li>AVL : Un arbre binaire auto-\u00e9quilibr\u00e9 o\u00f9 les op\u00e9rations sont toutes O(log N)<\/li>\n<li>NTree : Un arbre hi\u00e9rarchique avec un nombre quelconque d&rsquo;enfants par n\u0153ud. Utilis\u00e9 dans l&rsquo;impl\u00e9mentation de DOM<\/li>\n<li>Rtree : Une base d&rsquo;arbre structurelle pour le stockage de syst\u00e8mes d&rsquo;information g\u00e9ographique.<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2125\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"button\" aria-controls=\"elementor-tab-content-2125\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.5 Compression<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2125\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"region\" aria-labelledby=\"elementor-tab-title-2125\"><ul>\n<li>Zlib : Compresseur et d\u00e9compresseur bas\u00e9 sur Zlib<\/li>\n<li>Gzip : compresseur et d\u00e9compresseur bas\u00e9 sur Gzip<\/li>\n<li>EBSC : compresseur et d\u00e9compresseur bas\u00e9 sur BSC (BSC se comporte plus rapidement et mieux que LZMA)<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2126\" class=\"elementor-tab-title\" data-tab=\"6\" role=\"button\" aria-controls=\"elementor-tab-content-2126\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.6 Primitives cryptographiques<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2126\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"region\" aria-labelledby=\"elementor-tab-title-2126\"><h5>1.6.1 Algorithmes asym\u00e9triques<\/h5>\n<ul>\n<li>RSA : Une impl\u00e9mentation RSA math\u00e9matiquement correcte (pas d&rsquo;optimisations)<\/li>\n<li>DSA : Une impl\u00e9mentation DSA math\u00e9matiquement correcte (pas d&rsquo;optimisations)<\/li>\n<li>OAEP PKCS : Impl\u00e9mentation OAEP pour les messages de remplissage<\/li>\n<li>OSSL_RSA : Impl\u00e9mentation RSA qui utilise la biblioth\u00e8que OpenSSL du syst\u00e8me<\/li>\n<li>OSSL_DSA : Impl\u00e9mentation DSA qui utilise la biblioth\u00e8que OpenSSL du syst\u00e8me<\/li>\n<li>OSSL_RSASign : Impl\u00e9mentation de la signature RSA qui utilise la biblioth\u00e8que OpenSSL du syst\u00e8me<\/li>\n<li>OSSL_ECIES : Cryptographie asym\u00e9trique bas\u00e9e sur les courbes elliptiques utilisant la biblioth\u00e8que OpenSSL du syst\u00e8me<\/li>\n<li>OSSL_ECDSA : Impl\u00e9mentation de la courbe elliptique DSA utilisant la biblioth\u00e8que OpenSSL du syst\u00e8me<\/li>\n<li>OSSL_ECDH : Impl\u00e9mentation de la courbe elliptique Diffie Hellman pour l&rsquo;\u00e9change de secret qui utilise la biblioth\u00e8que OpenSSL du syst\u00e8me.<\/li>\n<\/ul>\n<h5>1.6.2 Algorithmes sym\u00e9triques<\/h5>\n<ul>\n<li>AES : Une impl\u00e9mentation math\u00e9matiquement correcte d&rsquo;AES (impl\u00e9mentation du code officiel)<\/li>\n<li>OSSL_AES : Une primitive AES utilisant la biblioth\u00e8que OpenSSL du syst\u00e8me<\/li>\n<\/ul>\n<h5>1.6.3 Hachage<\/h5>\n<ul>\n<li>Adler32 : Somme de contr\u00f4le Adler32 qui supporte \u00e9galement l&rsquo;interface de somme de contr\u00f4le roulante<\/li>\n<li>CRC16\/CRC32 : algorithme CRC classique<\/li>\n<li>MD5 : algorithme classique de hachage MD5<\/li>\n<li>SHA1\/SHA256 : fonctions de hachage SHA (160 bits pour SHA1, 256 pour SHA256)<\/li>\n<li>HMAC : Une classe HMAC bas\u00e9e sur un mod\u00e8le qui peut HMAC avec n&rsquo;importe quelle primitive de hachage.<\/li>\n<li>KDF\/PBKDF1\/PBKDF2 : fonctions de d\u00e9rivation de cl\u00e9s (bas\u00e9es sur des mots de passe) qui peuvent utiliser n&rsquo;importe quelle primitive de hachage.<\/li>\n<\/ul>\n<h5>1.6.4 Al\u00e9atoire<\/h5>\n<ul>\n<li>MersenneTwister : Un g\u00e9n\u00e9rateur pseudo-al\u00e9atoire bas\u00e9 sur MersenneTwister, collectant l&rsquo;entropie r\u00e9elle de l&rsquo;analyseur de mat\u00e9riel.<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2127\" class=\"elementor-tab-title\" data-tab=\"7\" role=\"button\" aria-controls=\"elementor-tab-content-2127\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.7 Flux<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2127\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"region\" aria-labelledby=\"elementor-tab-title-2127\"><h5>1.7.1 InputStream<\/h5>\n<ul>\n<li>Les flux d&rsquo;entr\u00e9e fournissent une interface abstraite et commune pour g\u00e9rer tous les types de donn\u00e9es sources.<\/li>\n<li>ForwardInputStream : utilis\u00e9 pour la classe de flux enveloppante<\/li>\n<li>RangeInputStream : un flux d&rsquo;entr\u00e9e avec limiteur de port\u00e9e<\/li>\n<li>StdInStream : flux bas\u00e9 sur le descripteur de fichier d&rsquo;entr\u00e9e standard (STDIN)<\/li>\n<li>LineBasedInputStream : Un wrapper qui permet de lire un flux d&rsquo;entr\u00e9e ligne par ligne<\/li>\n<li>InputFileStream : Un flux d&rsquo;entr\u00e9e dont la source est un fichier<\/li>\n<li>InputStringStream : Un flux d&rsquo;entr\u00e9e dont la source est une cha\u00eene de caract\u00e8res<\/li>\n<li>MemoryBlockStream : Un flux d&rsquo;entr\u00e9e r\u00e9alis\u00e9 \u00e0 partir d&rsquo;un tampon m\u00e9moire pr\u00e9-allou\u00e9<\/li>\n<li>MemoryBufferedInputStream : Un wrapper de flux d&rsquo;entr\u00e9e qui lit compl\u00e8tement le flux d&rsquo;entr\u00e9e donn\u00e9 dans un tampon de m\u00e9moire pour la mise en cache.<br \/>\nSuccessiveStream : Un flux d&rsquo;entr\u00e9e qui lit successivement deux flux d&rsquo;entr\u00e9e.<\/li>\n<li>Base64InputStream : Un flux d&rsquo;entr\u00e9e qui d\u00e9code les donn\u00e9es Base64 \u00e0 la vol\u00e9e<\/li>\n<li>AESInputStream : Un flux d&rsquo;entr\u00e9e qui d\u00e9code \u00e0 la vol\u00e9e des donn\u00e9es crypt\u00e9es AES<\/li>\n<li>SocketInputStream : Un flux d&rsquo;entr\u00e9e qui lit \u00e0 partir d&rsquo;une socket<\/li>\n<li>BufferedInputStream : Un flux d&rsquo;entr\u00e9e qui lit le flux d&rsquo;entr\u00e9e donn\u00e9 bloc par bloc<\/li>\n<li>DecompressInputStream : Un flux d&rsquo;entr\u00e9e qui d\u00e9compresse les donn\u00e9es \u00e0 la vol\u00e9e.<\/li>\n<\/ul>\n<h5>1.7.2 OutputStream<\/h5>\n<ul>\n<li>Les flux de sortie fournissent une interface abstraite et commune pour g\u00e9rer tous les types de donn\u00e9es sources.<\/li>\n<li>OutputFileStream : Un flux de sortie qui \u00e9crit dans un fichier<\/li>\n<li>OutputStringStream : Un flux de sortie qui remplit une cha\u00eene de caract\u00e8res<\/li>\n<li>OutputMemStream : Un flux de sortie qui remplit un MemoryBlock<\/li>\n<li>MemoryBlockOutStream : Un flux de sortie qui remplit un tampon m\u00e9moire pr\u00e9-allou\u00e9<\/li>\n<li>MemoryBufferedOutputStream : Un flux de sortie qui remplit un tampon m\u00e9moire et \u00e9crit ensuite dans le flux de sortie donn\u00e9.<\/li>\n<li>NullOutputStream : Un flux de sortie qui garde la trace de la quantit\u00e9 \u00e9crite, mais n&rsquo;\u00e9crit rien.<br \/>\nTeeStream : Un flux de sortie qui duplique son action sur deux flux de sortie.<\/li>\n<li>Base64OutputStream : Un flux de sortie qui encode en Base64 \u00e0 la vol\u00e9e<\/li>\n<li>AESOutputStream : Un flux de sortie qui encode \u00e0 la vol\u00e9e des donn\u00e9es crypt\u00e9es en AES<\/li>\n<li>HashStream : Un flux de sortie qui calcule un Hash \u00e0 la vol\u00e9e tout en \u00e9crivant dans un flux de sortie.<br \/>\nSocketOutputStream : Un flux de sortie qui \u00e9crit sur une socket.<\/li>\n<li>CompressOutputStream : Un flux de sortie qui compresse des donn\u00e9es \u00e0 la vol\u00e9e<\/li>\n<li>HeaderBodyStream : Un flux de sortie bas\u00e9 sur une m\u00e9moire tampon pour un en-t\u00eate de taille fixe et un flux de sortie pour les donn\u00e9es, qui permet d&rsquo;\u00e9crire hors temps dans l&rsquo;en-t\u00eate apr\u00e8s que les donn\u00e9es aient \u00e9t\u00e9 \u00e9crites.<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2128\" class=\"elementor-tab-title\" data-tab=\"8\" role=\"button\" aria-controls=\"elementor-tab-content-2128\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.8 Partitionnement de l'espace<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2128\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"8\" role=\"region\" aria-labelledby=\"elementor-tab-title-2128\"><p>1.8.1 Cartes de Hilbert : une zone 2D \u00e0 une seule coordonn\u00e9e 1D de longueur variable<br \/>\n1.8.2 BoundingBox\/FlatRectangles\/Point : primitives de base \u00e0 N dimensions<br \/>\n1.8.3 Rtree : structure de stockage g\u00e9ographique sp\u00e9cialis\u00e9e efficace<br \/>\n1.8.4 LongNumber : Nombre de pr\u00e9cision illimit\u00e9e<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-2129\" class=\"elementor-tab-title\" data-tab=\"9\" role=\"button\" aria-controls=\"elementor-tab-content-2129\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.9 Configuration<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-2129\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"9\" role=\"region\" aria-labelledby=\"elementor-tab-title-2129\"><p>1.9.1 Config : Un objet de valeur de configuration automatique persistant avec une interface transparente<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21210\" class=\"elementor-tab-title\" data-tab=\"10\" role=\"button\" aria-controls=\"elementor-tab-content-21210\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.10 Base de donn\u00e9e<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21210\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"10\" role=\"region\" aria-labelledby=\"elementor-tab-title-21210\"><p>1.10.1 Abstraction de la base de donn\u00e9es : L&rsquo;impl\u00e9mentation de la base de donn\u00e9es est un syst\u00e8me tr\u00e8s innovant o\u00f9 des objets C++ standard sont utilis\u00e9s et synchronis\u00e9s automatiquement dans la base de donn\u00e9es.<br \/>\n1.10.2 SQLite : Un pilote de base de donn\u00e9es pour SQLite3<br \/>\n1.10.3 MySQL : Un pilote de base de donn\u00e9es pour MySQL<br \/>\n1.10.4 Interface bas\u00e9e sur les requ\u00eates : une construction d&rsquo;instructions bas\u00e9e sur la compilation avec des instructions pr\u00e9par\u00e9es automatiques pour une utilisation s\u00fbre de la base de donn\u00e9es.<br \/>\n1.10.5 Contraintes : Une vue bas\u00e9e sur les contraintes de la base de donn\u00e9es qui se synchronise automatiquement.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21211\" class=\"elementor-tab-title\" data-tab=\"11\" role=\"button\" aria-controls=\"elementor-tab-content-21211\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.11 Temps et Date<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21211\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"11\" role=\"region\" aria-labelledby=\"elementor-tab-title-21211\"><p>1.11.1 Date\/InternationalData : Une interface commune pour l&rsquo;analyse de la date, la conversion dans diff\u00e9rents calendriers et l&rsquo;\u00e9mission.<br \/>\n1.11.2 Time\/Duration : Une interface commune pour l&rsquo;analyse du temps, la conversion \u00e0 partir de diff\u00e9rents fuseaux horaires (heure locale, y compris la coh\u00e9rence de l&rsquo;heure d&rsquo;\u00e9t\u00e9 et de l&rsquo;heure d&rsquo;hiver).<br \/>\n1.11.3 Chrono : Un Chrono tr\u00e8s pr\u00e9cis.<br \/>\n1.11.4 ScopeProfiler : Un profileur bas\u00e9 sur le scope qui permet de profiler le code par fonction \/ par scope avec et sans accumulation.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21212\" class=\"elementor-tab-title\" data-tab=\"12\" role=\"button\" aria-controls=\"elementor-tab-content-21212\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.12 Multithreading<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21212\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"12\" role=\"region\" aria-labelledby=\"elementor-tab-title-21212\"><p>1.12.1 Thread : une classe de threads commune \u00e0 toutes les plates-formes, avec son propre support de variables locales, le vidage de pile, et bien d&rsquo;autres fonctionnalit\u00e9s.<br \/>\n1.12.2 Lock\/Event\/RWLock : primitive de synchronisation de base (verrouillage de section de code partag\u00e9, m\u00e9canisme d&rsquo;\u00e9v\u00e9nement, verrous de lecture\/\u00e9criture).<br \/>\n1.12.3 Classes atomiques : classes atomiques qui utilisent les fonctions du compilateur C++ si elles sont disponibles, sinon elles utilisent par d\u00e9faut les fonctions intrins\u00e8ques du compilateur, et enfin les fonctions du syst\u00e8me d&rsquo;exploitation.<br \/>\n1.12.4 Jobs : Un planificateur bas\u00e9 sur les jobs qui s&rsquo;ex\u00e9cute dans son propre thread.<br \/>\n1.12.5 AsyncThread : primitive asynchrone \u00a0\u00bb call me later \u00a0\u00bb facile \u00e0 utiliser<br \/>\n1.12.6 TimerThread : Un thread d&rsquo;ordonnancement bas\u00e9 sur le temps avec des callbacks<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21213\" class=\"elementor-tab-title\" data-tab=\"13\" role=\"button\" aria-controls=\"elementor-tab-content-21213\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.13 XML<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21213\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"13\" role=\"region\" aria-labelledby=\"elementor-tab-title-21213\"><p>1.13.1 XML Parser : L&rsquo;un des analyseurs XML les plus rapides du march\u00e9<br \/>\n1.13.2 Xpath : Un moteur de traitement Xpath complet<br \/>\n1.13.3 FastExtract : Extraction d&rsquo;informations \u00e0 partir de XML par une recherche de base \u00e0 la compilation dans un arbre XML<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21214\" class=\"elementor-tab-title\" data-tab=\"14\" role=\"button\" aria-controls=\"elementor-tab-content-21214\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.14 R\u00e9seau<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21214\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"14\" role=\"region\" aria-labelledby=\"elementor-tab-title-21214\"><h5>1.14.1 Primitives communes<\/h5>\n<ul>\n<li>BaseAddress\/IPV4\/IPV6\/URL\/UDT : fournit une interface commune et sp\u00e9cifique \u00e0 une classe pour la manipulation des adresses de r\u00e9seau avec un support complet pour l&rsquo;interrogation des tables de routage, ARP, DNS, etc.<\/li>\n<li>BaseSocket\/BerkeleySocket\/SSLSocket : fournit une interface commune pour les fonctions de socket r\u00e9seau avec une interface s\u00fbre et facile \u00e0 utiliser.<\/li>\n<li>BaseConnection\/Stream\/PseudoStream\/Datagrame : Supprime les diff\u00e9rences entre les sockets sous-jacents pour se concentrer sur les solutions applicatives.<\/li>\n<li>D\u00e9tection : D\u00e9tecter les appareils sur le r\u00e9seau en utilisant UPNP, NATPMP, MulticastDNS, Multicast broadcasting.<\/li>\n<li>NAT : techniques de passage NAT<\/li>\n<li>Pools Cross platform : pool de sockets polling system qui utilise les meilleures primitives du syst\u00e8me d&rsquo;exploitation.<\/li>\n<\/ul>\n<h5>1.14.2 Clients<\/h5>\n<ul>\n<li>HTTP : Un client compatible HTTP1.0\/1.1 avec une prise en charge compl\u00e8te des fonctionnalit\u00e9s, y compris la gestion manuelle et automatique des sessions.<\/li>\n<li>AsMuchAsYouCan : Un client de preuve de concept qui lit autant que possible.<\/li>\n<li>Authentification : Un client bas\u00e9 sur l&rsquo;authentification<\/li>\n<li>FTP : Un client FTP<\/li>\n<li>PTZ : Un client d&rsquo;interface abstraite pan tilt zoom pour cam\u00e9ra IP avec fonctionnalit\u00e9 PTZ<\/li>\n<li>RTSP\/RTP : Un client compatible avec le serveur de streaming en temps r\u00e9el avec une interface propre et facile \u00e0 comprendre.<\/li>\n<li>SMTP : Un client SMTP pour l&rsquo;envoi de courriels<br \/>\nSDP : Un client compatible avec le protocole de description de session<\/li>\n<li>MIME : Un client compatible avec l&rsquo;analyse MIME<\/li>\n<li>SOAP : Un client compatible SOAP pour se connecter aux services SOAP<\/li>\n<li>Websocket : Un client compatible avec websocket<\/li>\n<li>OnVIF : Un client compatible avec OnVIF<\/li>\n<li>Fetcher : Une abstraction sur le client de r\u00e9cup\u00e9ration de flux (peut \u00eatre via HTTP\/Multipart, RTSP\/RTP, RTPoverRTSP, File, etc&#8230;)<\/li>\n<li>Enregistreur : Une abstraction sur les capacit\u00e9s d&rsquo;enregistrement de flux (vers des fichiers .MP4\/.MJPG\/.NVF)<\/li>\n<\/ul>\n<h5>1.14.3 Serveurs<\/h5>\n<p>Tous les serveurs supportent les interfaces monothread (via polling) et multithread.<\/p>\n<ul>\n<li>HTTP : un serveur HTTP compliant complet<br \/>\nEventHTTP : un serveur HTTP bas\u00e9 sur les \u00e9v\u00e9nements<\/li>\n<li>Websocket : Un serveur compatible avec Websocket qui peut r\u00e9utiliser le client d&rsquo;un serveur EventHTTP.<br \/>\nWSDiscovery : Un serveur WS-Discovery qui diffuse le service sur le r\u00e9seau.<\/li>\n<li>RTSP\/RTP : Un serveur compatible RTSP<\/li>\n<li>SDP : Un service compatible avec le protocole de description de session pour le serveur RTSP.<\/li>\n<\/ul>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21215\" class=\"elementor-tab-title\" data-tab=\"15\" role=\"button\" aria-controls=\"elementor-tab-content-21215\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.15 HTML<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21215\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"15\" role=\"region\" aria-labelledby=\"elementor-tab-title-21215\"><p>1.15.1 HTMLParser : Un parseur tr\u00e8s rapide compatible avec HTML4 qui convertit et corrige les mauvais documents HTML en documents XML valides ou en arbres DOM.<br \/>\n1.15.2 DOM : Une interface compatible avec DOM 2.0<br \/>\n1.15.3 XMLSession : Un moteur de traitement XML qui peut simuler la navigation d&rsquo;un utilisateur sur un site web donn\u00e9, l&rsquo;affichage de formulaires et l&rsquo;extraction de donn\u00e9es.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21216\" class=\"elementor-tab-title\" data-tab=\"16\" role=\"button\" aria-controls=\"elementor-tab-content-21216\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.16 Diffusion continue<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21216\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"16\" role=\"region\" aria-labelledby=\"elementor-tab-title-21216\"><p>1.16.1 H264\/MPEG4\/MJPEG : D\u00e9multiplicateur pour ces codecs utilis\u00e9s dans les clients et serveurs de streaming.<br \/>\n1.16.2 AAC\/MP3 : D\u00e9multiplicateur pour ces codecs utilis\u00e9s dans les clients et serveurs de streaming.<br \/>\n1.16.3 MPEG4 layer 2 (file parser) : Un analyseur d&rsquo;archives MPEG4<br \/>\n1.16.4 Bitratestats : Statistiques de d\u00e9bit.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21217\" class=\"elementor-tab-title\" data-tab=\"17\" role=\"button\" aria-controls=\"elementor-tab-content-21217\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.17 Mat\u00e9riel<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21217\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"17\" role=\"region\" aria-labelledby=\"elementor-tab-title-21217\"><p>1.17.1 Scanner : Un scanner pour la configuration mat\u00e9rielle (extraction de nombreuses informations, comme l&rsquo;EDID du moniteur, le num\u00e9ro de s\u00e9rie du disque dur, etc.)<br \/>\n1.17.2 Plate-forme : Une impl\u00e9mentation multiplateforme de fonctionnalit\u00e9s sp\u00e9cifiques \u00e0 la plateforme (comme le chargement dynamique de biblioth\u00e8ques, etc&#8230;)<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21218\" class=\"elementor-tab-title\" data-tab=\"18\" role=\"button\" aria-controls=\"elementor-tab-content-21218\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.18 Encodage<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21218\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"18\" role=\"region\" aria-labelledby=\"elementor-tab-title-21218\"><p>1.18.1 Base16\/Base64\/Base85 : Un encodeur et d\u00e9codeur hexad\u00e9cimal, base64 et base85 (non compatible avec le format base85 d&rsquo;Adobe).<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21219\" class=\"elementor-tab-title\" data-tab=\"19\" role=\"button\" aria-controls=\"elementor-tab-content-21219\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.19 Fichier<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21219\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"19\" role=\"region\" aria-labelledby=\"elementor-tab-title-21219\"><p>1.19.1 Info : Un extracteur d&rsquo;informations sur les fichiers tr\u00e8s facile \u00e0 utiliser (comme les permissions, la date et l&rsquo;heure, le contenu, le nombre de liens, etc.)<br \/>\n1.19.2 Scanner : Un scanner de r\u00e9pertoire tr\u00e8s rapide, bas\u00e9 sur des callbacks, avec des capacit\u00e9s de filtrage.<br \/>\n1.19.3 DirectoryIteractor : Un it\u00e9rateur pour \u00e9num\u00e9rer les fichiers dans un r\u00e9pertoire<br \/>\n1.19.4 Async\/Stream\/Pool : Une classe de lecture et d&rsquo;\u00e9criture de fichiers asynchrone et en bloc avec des capacit\u00e9s de pool<br \/>\n1.19.5 Metadata extractor : Un extracteur de m\u00e9tadonn\u00e9es de fichiers qui peut \u00eatre combin\u00e9 avec FFMPEG pour obtenir des informations suppl\u00e9mentaires sur les fichiers.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21220\" class=\"elementor-tab-title\" data-tab=\"20\" role=\"button\" aria-controls=\"elementor-tab-content-21220\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.20 Format de fichier<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21220\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"20\" role=\"region\" aria-labelledby=\"elementor-tab-title-21220\"><p>1.20.1 Zip : Une classe de cr\u00e9ation et de d\u00e9compression d&rsquo;archives capable de g\u00e9rer le format zip.<br \/>\n1.20.2 PDF : Un format de lecture d&rsquo;objets PDF<br \/>\n1.20.3 EPUB : Une classe de lecture de fichiers EPUB<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21221\" class=\"elementor-tab-title\" data-tab=\"21\" role=\"button\" aria-controls=\"elementor-tab-content-21221\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.21 Image<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21221\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"21\" role=\"region\" aria-labelledby=\"elementor-tab-title-21221\"><p>1.21.1 JPEG : Un d\u00e9codeur JPEG de taille optimis\u00e9e<br \/>\n1.21.2 PNG : Un d\u00e9codeur et un encodeur PNG de taille optimis\u00e9e<br \/>\n1.22.3 PPM\/PBM\/PGM : Un d\u00e9codeur et encodeur Netpbm<br \/>\n1.22.4 Image : Une classe de traitement d&rsquo;image tr\u00e8s simple et rapide<br \/>\n1.22.5 Couleur : Une classe de traitement des couleurs capable de traiter plusieurs espaces colorim\u00e9triques<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21222\" class=\"elementor-tab-title\" data-tab=\"22\" role=\"button\" aria-controls=\"elementor-tab-content-21222\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Enregistreur<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21222\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"22\" role=\"region\" aria-labelledby=\"elementor-tab-title-21222\"><p>1.22.1 Console : Une impl\u00e9mentation de l&rsquo;interface logger pour l&rsquo;enregistrement en mode console.<br \/>\n1.22.2 File : journalisation bas\u00e9e sur les fichiers<br \/>\n1.22.3 Structure file : enregistrement bas\u00e9 sur un fichier avec une structure permettant de le rechercher facilement.<br \/>\n1.22.4 Debug : Un logging bas\u00e9 sur une console de d\u00e9bogage<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21223\" class=\"elementor-tab-title\" data-tab=\"23\" role=\"button\" aria-controls=\"elementor-tab-content-21223\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.23 Types<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21223\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"23\" role=\"region\" aria-labelledby=\"elementor-tab-title-21223\"><p>1.23.1 Constant : Un syst\u00e8me d&rsquo;unit\u00e9s bas\u00e9 sur un mod\u00e8le pour les \u00e9quations math\u00e9matiques et physiques v\u00e9rifi\u00e9es en temps r\u00e9el.<br \/>\n1.23.2 Unit\u00e9s : Un syst\u00e8me d&rsquo;unit\u00e9s bas\u00e9 sur un mod\u00e8le pour les \u00e9quations math\u00e9matiques et physiques v\u00e9rifi\u00e9es en temps r\u00e9el.<br \/>\n1.23.3 Valeur : Un syst\u00e8me d&rsquo;unit\u00e9s bas\u00e9 sur un mod\u00e8le pour les \u00e9quations math\u00e9matiques et physiques v\u00e9rifi\u00e9es en temps r\u00e9el.<br \/>\n1.23.4 Expression : Un analyseur d&rsquo;expressions math\u00e9matiques avec des fonctions d\u00e9finissables par la port\u00e9e.<br \/>\n1.23.5 Variant : Une classe de variante \u00e0 s\u00e9curit\u00e9 de type r\u00e9elle avec un stockage \u00e9l\u00e9gant du tas\/de la pile bas\u00e9 sur le type stock\u00e9.<br \/>\n1.23.6 JSON : Un analyseur et un r\u00e9dacteur compatibles avec JSON<br \/>\n1.23.7 DynObj : Une classe d&rsquo;objet dynamique avec une interface \u00e9l\u00e9gante qui permet de modifier le code en cours d&rsquo;ex\u00e9cution.<br \/>\n1.23.8 UUID : Une classe d&rsquo;analyse syntaxique compatible avec UUID<br \/>\n1.23.9 UniversalTypeIdentifier : Un registre pour les types afin de permettre une conversion dynamique des types bas\u00e9e sur une impl\u00e9mentation pseudo XML<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21224\" class=\"elementor-tab-title\" data-tab=\"24\" role=\"button\" aria-controls=\"elementor-tab-content-21224\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.24 Licensing<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21224\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"24\" role=\"region\" aria-labelledby=\"elementor-tab-title-21224\"><p>1.24.1 Licences \/ Gestion des droits num\u00e9riques : Algorithme de mise en \u0153uvre du DRM<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21225\" class=\"elementor-tab-title\" data-tab=\"25\" role=\"button\" aria-controls=\"elementor-tab-content-21225\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.25 Utilitaires<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21225\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"25\" role=\"region\" aria-labelledby=\"elementor-tab-title-21225\"><p>1.25.1 MemoryBlock : Une classe de bloc m\u00e9moire qui g\u00e8re l&rsquo;encodage, la croissance, la r\u00e9duction, etc.<br \/>\n1.25.2 ScopePtr : Une classe de pointeur bas\u00e9e sur le champ d&rsquo;application.<br \/>\n1.25.3 OwnPtr : Une classe de pointeur modifiable par le propri\u00e9taire<br \/>\n1.25.4 RefPtr : Une classe de pointeur de compteur de r\u00e9f\u00e9rence (obsol\u00e8te)<br \/>\n1.25.5 Dump : Un dumper hexad\u00e9cimal pour le d\u00e9bogage<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21226\" class=\"elementor-tab-title\" data-tab=\"26\" role=\"button\" aria-controls=\"elementor-tab-content-21226\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.26 D\u00e9bogage<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21226\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"26\" role=\"region\" aria-labelledby=\"elementor-tab-title-21226\"><p>1.26.1 breakUnderDebugger : Une simple fonction d&rsquo;interruption sous d\u00e9bogueur si le code est ex\u00e9cut\u00e9 sous un d\u00e9bogueur.<br \/>\n1.26.2 Callstack dump : Une fonction de vidage de la pile d&rsquo;appels<br \/>\n1.26.3 TypeOf : Retourne une repr\u00e9sentation textuelle d&rsquo;un type, disponible m\u00eame lorsque le code est compil\u00e9 sans RTTI<br \/>\n1.26.4 Assert \/ CompileTimeAssert : V\u00e9rification d&rsquo;assertions bas\u00e9e sur le runtime et le compiletime<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21227\" class=\"elementor-tab-title\" data-tab=\"27\" role=\"button\" aria-controls=\"elementor-tab-content-21227\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.27 Internationalisation<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21227\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"27\" role=\"region\" aria-labelledby=\"elementor-tab-title-21227\"><p>1.27.1 Calendriers : De nombreux calendriers diff\u00e9rents sont pris en charge pour la conversion de la date et de l&rsquo;heure.<br \/>\n1.27.2 Traduire : Une macro et une fonction de traduction tr\u00e8s optimis\u00e9es pour la conversion de cha\u00eenes de caract\u00e8res bas\u00e9es sur des ressources de fichiers externes.<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<div id=\"elementor-tab-title-21228\" class=\"elementor-tab-title\" data-tab=\"28\" role=\"button\" aria-controls=\"elementor-tab-content-21228\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><i class=\"fas fa-plus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><i class=\"elementor-toggle-icon-opened fas fa-minus-circle\"><\/i><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">1.28 Tests<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-21228\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"28\" role=\"region\" aria-labelledby=\"elementor-tab-title-21228\"><p>1.28.1 UnitTest : Un m\u00e9canisme de test tr\u00e8s simple pour toutes les fonctionnalit\u00e9s d\u00e9crites ci-dessus.<br \/>\n1.28.2 False : Une capture de fichier et de ligne bas\u00e9e sur la compilation pour l&rsquo;\u00e9chec des tests.<br \/>\n1.28.3 MakeUnitTest : Une macro pratique pour g\u00e9n\u00e9rer automatiquement des vecteurs de test bas\u00e9s sur les drapeaux de compilation<\/p>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-651786f elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"651786f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Vous pouvez \u00e9galement consulter notre\u00a0<a title=\"Architecture modulaire \u00e9lectronique HardWare\" href=\"https:\/\/nexvision.fr\/fr\/architecture-modulaire-hardware\/\">Architecture modulaire HW<\/a>\u00a0et notre\u00a0<a title=\"Librairie de traitement d'images FPGA\" href=\"https:\/\/nexvision.fr\/fr\/bibliotheques-dip-pour-fpga\/\">Librairie IP Core FPGA<\/a>.<\/p>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; CLASSPATH : Notre solution SOFTWARE \u201cPr\u00eate \u00e0 customiser\u201d Nexvision propose un panel de briques logicielles r\u00e9guli\u00e8rement mises \u00e0 jour en fonction de l\u2019avanc\u00e9e de notre R&#038;D \u00e0 travers son ClassPath. Description des fonctions ClassPath 1. Modules de base (Toutes les autres fonctions d\u00e9pendent de ces modules de base) 1.1 Containers Tampons circulaires : Un [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":16038,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-14271","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Architecture modulaire Software pour syst\u00e8mes optroniques<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez les avantages de notre architecture modulaire software. Solution flexible pour des syst\u00e8mes performants. Cliquez ici !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Architecture modulaire Software pour syst\u00e8mes optroniques\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez les avantages de notre architecture modulaire software. Solution flexible pour des syst\u00e8mes performants. Cliquez ici !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/\" \/>\n<meta property=\"og:site_name\" content=\"NEXVISION\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-19T10:57:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/\",\"url\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/\",\"name\":\"Architecture modulaire Software pour syst\u00e8mes optroniques\",\"isPartOf\":{\"@id\":\"https:\/\/nexvision.fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png\",\"datePublished\":\"2024-05-29T11:41:19+00:00\",\"dateModified\":\"2024-08-19T10:57:40+00:00\",\"description\":\"D\u00e9couvrez les avantages de notre architecture modulaire software. Solution flexible pour des syst\u00e8mes performants. Cliquez ici !\",\"breadcrumb\":{\"@id\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#primaryimage\",\"url\":\"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png\",\"contentUrl\":\"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nexvision.fr\/fr\/accueil\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Solutions\",\"item\":\"https:\/\/nexvision.fr\/fr\/solutions\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Modules\",\"item\":\"https:\/\/nexvision.fr\/fr\/solutions\/modules\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Architecture modulaire Software\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nexvision.fr\/#website\",\"url\":\"https:\/\/nexvision.fr\/\",\"name\":\"NEXVISION\",\"description\":\"Vision solution : optronic system UV night SWIR LWIR Terahertz\",\"publisher\":{\"@id\":\"https:\/\/nexvision.fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nexvision.fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nexvision.fr\/#organization\",\"name\":\"NEXVISION\",\"url\":\"https:\/\/nexvision.fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/nexvision.fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nexvision.fr\/wp-content\/uploads\/2025\/10\/LogoNexvision696px.png\",\"contentUrl\":\"https:\/\/nexvision.fr\/wp-content\/uploads\/2025\/10\/LogoNexvision696px.png\",\"width\":696,\"height\":696,\"caption\":\"NEXVISION\"},\"image\":{\"@id\":\"https:\/\/nexvision.fr\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Architecture modulaire Software pour syst\u00e8mes optroniques","description":"D\u00e9couvrez les avantages de notre architecture modulaire software. Solution flexible pour des syst\u00e8mes performants. Cliquez ici !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/","og_locale":"fr_FR","og_type":"article","og_title":"Architecture modulaire Software pour syst\u00e8mes optroniques","og_description":"D\u00e9couvrez les avantages de notre architecture modulaire software. Solution flexible pour des syst\u00e8mes performants. Cliquez ici !","og_url":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/","og_site_name":"NEXVISION","article_modified_time":"2024-08-19T10:57:40+00:00","og_image":[{"url":"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/","url":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/","name":"Architecture modulaire Software pour syst\u00e8mes optroniques","isPartOf":{"@id":"https:\/\/nexvision.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#primaryimage"},"image":{"@id":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#primaryimage"},"thumbnailUrl":"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png","datePublished":"2024-05-29T11:41:19+00:00","dateModified":"2024-08-19T10:57:40+00:00","description":"D\u00e9couvrez les avantages de notre architecture modulaire software. Solution flexible pour des syst\u00e8mes performants. Cliquez ici !","breadcrumb":{"@id":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#primaryimage","url":"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png","contentUrl":"https:\/\/nexvision.fr\/wp-content\/uploads\/2024\/05\/SW_electronic_modular_architecture.png"},{"@type":"BreadcrumbList","@id":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/architecture-modulaire-software\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nexvision.fr\/fr\/accueil\/"},{"@type":"ListItem","position":2,"name":"Solutions","item":"https:\/\/nexvision.fr\/fr\/solutions\/"},{"@type":"ListItem","position":3,"name":"Modules","item":"https:\/\/nexvision.fr\/fr\/solutions\/modules\/"},{"@type":"ListItem","position":4,"name":"Architecture modulaire Software"}]},{"@type":"WebSite","@id":"https:\/\/nexvision.fr\/#website","url":"https:\/\/nexvision.fr\/","name":"NEXVISION","description":"Vision solution : optronic system UV night SWIR LWIR Terahertz","publisher":{"@id":"https:\/\/nexvision.fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nexvision.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/nexvision.fr\/#organization","name":"NEXVISION","url":"https:\/\/nexvision.fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/nexvision.fr\/#\/schema\/logo\/image\/","url":"https:\/\/nexvision.fr\/wp-content\/uploads\/2025\/10\/LogoNexvision696px.png","contentUrl":"https:\/\/nexvision.fr\/wp-content\/uploads\/2025\/10\/LogoNexvision696px.png","width":696,"height":696,"caption":"NEXVISION"},"image":{"@id":"https:\/\/nexvision.fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/pages\/14271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/comments?post=14271"}],"version-history":[{"count":4,"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/pages\/14271\/revisions"}],"predecessor-version":[{"id":15872,"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/pages\/14271\/revisions\/15872"}],"up":[{"embeddable":true,"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/pages\/16038"}],"wp:attachment":[{"href":"https:\/\/nexvision.fr\/fr\/wp-json\/wp\/v2\/media?parent=14271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}