{"id":4211,"date":"2021-03-16T20:01:21","date_gmt":"2021-03-16T20:01:21","guid":{"rendered":"https:\/\/www.colorwave.it\/blog\/?p=4211"},"modified":"2021-04-08T14:41:38","modified_gmt":"2021-04-08T14:41:38","slug":"ezechiele-parte-seconda","status":"publish","type":"post","link":"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/","title":{"rendered":"Ezechiele &#8211; parte seconda"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4211\" class=\"elementor elementor-4211\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-5590221c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"5590221c\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-79c74dbe elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"79c74dbe\" data-element_type=\"section\">\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-11a4d0d0\" data-id=\"11a4d0d0\" data-element_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-1fd09278 elementor-widget elementor-widget-heading\" data-id=\"1fd09278\" data-element_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\">CLB_Ezechiele_net - <br>la gestione delle sessioni <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-23e0591d elementor-widget elementor-widget-text-editor\" data-id=\"23e0591d\" data-element_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><a href=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri\/admin\/2021\/03\/\">nell&#8217;articolo precedente<\/a>\u00a0 sono stati introdotti i concetti alla base dell&#8217;assembly CLB_Ezechiele_net, ed abbiamo iniziato una descrizione della Classe Clb. La classe Clb \u00e8 banalmente l&#8217;interfaccia basica\u00a0 fra le classi che ora descriveremo e le funzionalit\u00e0 offerte dalle dll di Colibr\u00ec.\u00a0<\/p><p>In questo articolo presenteremo in dettaglio la\u00a0 classi Session ed un insieme di altre, che possiamo definire helper, che hanno lo scopo di semplificare lo sviluppo del software di variantatura di Ezechiele.<\/p><p>\u00a0<\/p>\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<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-18507c46\" data-id=\"18507c46\" data-element_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-efb9ec4 elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"efb9ec4\" data-element_type=\"widget\" data-settings=\"{&quot;exclude_headings_by_selector&quot;:[],&quot;headings_by_tags&quot;:[&quot;h2&quot;,&quot;h3&quot;,&quot;h4&quot;,&quot;h5&quot;,&quot;h6&quot;],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t<h4 class=\"elementor-toc__header-title\">\n\t\t\t\tTable of Contents\t\t\t<\/h4>\n\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__efb9ec4\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__efb9ec4\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t<div id=\"elementor-toc__efb9ec4\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-34ec5edc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"34ec5edc\" data-element_type=\"section\">\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-50 elementor-top-column elementor-element elementor-element-641a2cd8\" data-id=\"641a2cd8\" data-element_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-66fee4b8 elementor-widget elementor-widget-text-editor\" data-id=\"66fee4b8\" data-element_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<h3>Gestione delle sessioni<\/h3><p>Abbiamo affermato che una sessione \u00e8 una connessione che permette di accedere da un client remoto alle funzionalit\u00e0 di Colibri per:<\/p><ul><li>Aprire immagini<\/li><li>cartelle colori<\/li><li>\u00a0varianti colore<\/li><li>selezionare ricette colore..<\/li><li>..ecc.<\/li><\/ul><p>Tutti gli oggetti dei quali si ottiene la disposizione, sono remoti, non disponibili al client se non attraverso comandi di manipolazione. I comandi sono stati introdotti nell&#8217;articolo precedente, ed uno\u00a0 successivo li descriver\u00e0 in dettaglio.<\/p><p>Possiamo definire i comandi come metodi per accedere alle informazioni degli oggetti remoti.\u00a0<\/p><p>Il processo di connessione fa uso principalmente di due classi:\u00a0 <em><span style=\"color: #008000;\">Session<\/span> <\/em>e <span style=\"color: #008000;\">Sender<\/span><\/p><p>Session gestisce logicamente\u00a0 tutti gli oggetti remoti dei quali si \u00e8 ottenuta disponibilit\u00e0.<\/p><p>Sender gestisce il trasferimento dei comandi e degli argomenti al contesto remoto (Ezc_context) e ne riceve le risposte.<\/p><p>Lo schema che segue definisce il flusso delle informazioni fra le classi , fino a Colibri e ritorno (linee rosse e blue)<\/p><p>\u00a0<\/p>\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-40db540 elementor-widget elementor-widget-global elementor-global-4151 elementor-widget-image\" data-id=\"40db540\" data-element_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\" data-attachment-id=\"4218\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/comunicazioni_clb\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=748%2C572&amp;ssl=1\" data-orig-size=\"748,572\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"comunicazioni_clb\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=300%2C229&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=640%2C489&amp;ssl=1\" tabindex=\"0\" role=\"button\" width=\"640\" height=\"489\" src=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=640%2C489&amp;ssl=1\" class=\"attachment-large size-large wp-image-4218\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?w=748&amp;ssl=1 748w, https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?resize=300%2C229&amp;ssl=1 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-attachment-id=\"4218\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/comunicazioni_clb\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=748%2C572&amp;ssl=1\" data-orig-size=\"748,572\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"comunicazioni_clb\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=300%2C229&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/comunicazioni_clb.jpg?fit=640%2C489&amp;ssl=1\" role=\"button\" \/>\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-6f4b9330\" data-id=\"6f4b9330\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-642abceb elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"642abceb\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c3d686a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c3d686a\" data-element_type=\"section\">\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-d4de5fe\" data-id=\"d4de5fe\" data-element_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-2a87740 elementor-widget elementor-widget-text-editor\" data-id=\"2a87740\" data-element_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<h3>Aprire una sessione<\/h3><p>Una sessione \u00e8 aperta automaticamente allocando un&#8217;stanza <em><span style=\"color: #008000;\">Session<\/span> <\/em>e richiamando la sua funzione <span style=\"color: #0000ff;\">Session.open_connection<\/span> :<\/p>\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-73bcc76 elementor-widget elementor-widget-global elementor-global-4225 elementor-widget-code-highlight\" data-id=\"73bcc76\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-csharp \">\n\t\t\t\t<code readonly=\"true\" class=\"language-csharp\">\n\t\t\t\t\t<xmp>\t\t\tSession conn = null;\n\n\t\t\tconn = new Session();\n\n\t\t\tif (conn.open_connection())\n\t\t\t{\n\t\t\t\t......\n\t\t\t\t......\n\t\t\t\t......\n<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\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-792eba3 elementor-widget elementor-widget-text-editor\" data-id=\"792eba3\" data-element_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>L&#8217;apertura della connessione genera un link interno fra la sessione aperta ed una sessione gemella remota in <em><span style=\"color: #008000;\">CLB_Ezechiele\u00a0<\/span> <\/em>(una classe <em><span style=\"color: #008000;\">Ezc_context<\/span><\/em>) il cui id \u00e8 automaticamente memorizzato in Session.<\/p><p>Aperta la connessione sar\u00e0 possibile effettuare tutte le richieste previste attraverso i comandi messi a disposizione da <em><span style=\"color: #008000;\">Clb_Ezechiele<\/span><\/em> (li esporremo in una lista separata).<\/p><p>L&#8217;applicativo <span style=\"color: #008000;\">Ezechiele<\/span> di Bottinelli terr\u00e0 traccia delle sessioni e dei client ad esse connessi<\/p>\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-b55e3d8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b55e3d8\" data-element_type=\"section\">\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-4692a5e\" data-id=\"4692a5e\" data-element_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-3cc7d39 elementor-widget elementor-widget-text-editor\" data-id=\"3cc7d39\" data-element_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<h3><strong>Chiudere una sessione<\/strong><\/h3><p>La chiusura di una sessione \u00e8 effettuata attraverso un frammento di codice del tipo seguente:<\/p>\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-20f5e21 elementor-widget elementor-widget-code-highlight\" data-id=\"20f5e21\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-csharp \">\n\t\t\t\t<code readonly=\"true\" class=\"language-csharp\">\n\t\t\t\t\t<xmp>.......\n........\n\n conn.close();\n\n........\n........<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\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-6e5b479 elementor-widget elementor-widget-text-editor\" data-id=\"6e5b479\" data-element_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>l&#8217;istruzione<em><span style=\"color: #0000ff;\"> conn.close()<\/span>\u00a0<\/em> automaticamente informa <em><span style=\"color: #008000;\">CLB_Ezechiele<\/span> <\/em>che tutti gli oggetti messi a disposizione della Session dovranno essere rilasciati.<\/p><p>Sar\u00e0 compito dell&#8217;applicativo Ezechiele decidere quando e se distruggere l&#8217;istanza <span style=\"color: #0000ff;\">conn<\/span> disconnessa. Non si procede alla distruzione di conn fino a quando i riferimenti all&#8217;istanza non siano rimossi dall&#8217;applicazione<\/p>\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-ba230fa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ba230fa\" data-element_type=\"section\">\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-c32587e\" data-id=\"c32587e\" data-element_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-3b1c7a8 elementor-widget elementor-widget-text-editor\" data-id=\"3b1c7a8\" data-element_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<h3>Interagire con una Sessione<\/h3><p>Alla sessione potranno essere richiesti alcuni servizi, ad esempio recuperare un atlante colore, gestire un&#8217;immagine tif, psd o aprire un processo di variantatura dell&#8217;immagine, agire sui canali colore, ottenere una ricetta colore, aprire un profilo ecc..<\/p><p>Tutte le richieste saranno effettuate attraverso <em>Comandi, gestiti dalle sessioni. <\/em>Possiamo definire il comando come un&#8217;istruzione che ha per argomento i parametri associati..<\/p><p>Per definire la stringa di comando si utilizzano un insieme di parole chiave che consisto in verbi (azioni) e descrittori di oggetti.<\/p><p>ad esempio:<\/p><p>&lt; <span style=\"color: #0000ff;\">get color_book<\/span> &gt; indica la richiesta di un atlante colore.<\/p><p>&lt; <span style=\"color: #0000ff;\">open image<\/span> &gt; \u00e8 la richiesta di apertura di un&#8217;immagine in una sessione<\/p><p>&lt; <span style=\"color: #0000ff;\">get image area<\/span> &gt; richiede il trasferimento di un&#8217;area dell&#8217;immagine aperta nella sessione<\/p><p>tutte queste istruzioni sono seguite da argomenti del tipo opportuno e specificate nella documentazione.\u00a0<\/p><p><span style=\"color: #0000ff;\">get ,\u00a0 color_book, open,\u00a0 image,\u00a0 area <\/span>\u00a0sono membri del vocabolario, <span style=\"color: #0000ff;\">parole chiave<\/span> utilizzabili in contesti diversi.<\/p>\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-32b08f8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"32b08f8\" data-element_type=\"section\">\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-50 elementor-top-column elementor-element elementor-element-eabba6f\" data-id=\"eabba6f\" data-element_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-318c5e9 elementor-widget elementor-widget-image\" data-id=\"318c5e9\" data-element_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 decoding=\"async\" data-attachment-id=\"4277\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/info_185\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/info_185.jpg?fit=185%2C172&amp;ssl=1\" data-orig-size=\"185,172\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"info_185\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/info_185.jpg?fit=185%2C172&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/info_185.jpg?fit=185%2C172&amp;ssl=1\" tabindex=\"0\" role=\"button\" width=\"185\" height=\"172\" src=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/info_185.jpg?fit=185%2C172&amp;ssl=1\" class=\"attachment-large size-large wp-image-4277\" alt=\"\" data-attachment-id=\"4277\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/info_185\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/info_185.jpg?fit=185%2C172&amp;ssl=1\" data-orig-size=\"185,172\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"info_185\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/info_185.jpg?fit=185%2C172&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/info_185.jpg?fit=185%2C172&amp;ssl=1\" role=\"button\" \/>\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-aa542ae\" data-id=\"aa542ae\" data-element_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-52b6fd1 elementor-widget elementor-widget-text-editor\" data-id=\"52b6fd1\" data-element_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 style=\"text-align: center;\"><span style=\"color: #333399;\"><em>Un comando \u00e8, come abbiamo riferito nell&#8217;articolo precedente, una stringa che definisce l&#8217;operazione richiesta ed un insieme di eventuali argomenti.<\/em><\/span><br \/><span style=\"color: #333399;\"><em>Possiamo definire il<\/em> comando<em> come un&#8217;istruzione che ha per argomento i parametri associati..<\/em><\/span><\/p>\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-ab3b5bf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ab3b5bf\" data-element_type=\"section\">\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-3cc778a\" data-id=\"3cc778a\" data-element_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-149d8d0 elementor-widget elementor-widget-text-editor\" data-id=\"149d8d0\" data-element_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>Analizziamo ad esempio il frammento di codice che segue:<\/p>\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-0936df5 elementor-widget elementor-widget-code-highlight\" data-id=\"0936df5\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-csharp \">\n\t\t\t\t<code readonly=\"true\" class=\"language-csharp\">\n\t\t\t\t\t<xmp>     \/** @brief assegna un percorso sul server dove ricercare\/salvare gli oggetti\n\t\t * @obj_id stringa che definisce l'oggetto, ad esempio \"color_book\"..\n\t\t * @return true se ok\n\t\t *\/\n        public bool set_obj_path(string obj_id, string path)\n        {\n            string cmd = \"set path \" + obj_id;\n            return send_cmd(_s(cmd), _s(path));\n        }<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\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-953da15 elementor-widget elementor-widget-text-editor\" data-id=\"953da15\" data-element_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>il commento interno al codice descrive l&#8217;uso della funzione; noi ci soffermiamo sulle istruzioni che formano il comando e sul modo di trasmissione dello stesso a <em><span style=\"color: #008000;\">Clb_Ezechiele .<\/span><\/em><\/p><p>La funzione appartiene alla classe <em><span style=\"color: #008000;\">Session:\u00a0<\/span><\/em>la stringa di comando &lt;<span style=\"color: #0000ff;\"> set pat<\/span> &gt; viene associata all&#8217;argomento passato alla funzione <span style=\"color: #0000ff;\">obj_id<\/span>, che identifica una tipologia di oggetto (una delle parole chiave che definiscono gli oggetti\u00a0 gestiti..). Se ad esempio <span style=\"color: #0000ff;\">obj_id<\/span> == &#8220;<span style=\"color: #0000ff;\">color_book<\/span>&#8221; ,\u00a0 la funzione di servizio <span style=\"color: #008000;\">Session.send_cmd(..)<\/span> mander\u00e0 il comando\u00a0 &lt;<em><span style=\"color: #0000ff;\">set path color_book&gt; , <\/span><\/em>passando come unico argomento la stringa <em><span style=\"color: #0000ff;\">path<\/span><\/em><\/p><p><em>Per inciso, l&#8217;uso della funzione serve ad indicare a Ezc_context dove leggere e scrivere gli oggetti richiesti o salvati dall&#8217;azione del Client. Le successive richieste, ad esempio &lt;open_color_book&gt; non dovranno pi\u00f9 informare del path completo di ricerca, ma solo del nome dell&#8217;atlante..<\/em><\/p><p>Approfitteremo dell&#8217;esempio appena fatto per esporre l&#8217;uso della funzione <em><span style=\"color: #008000;\">Session.Send_cmd<\/span><\/em><\/p>\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-bcf3bf6 elementor-widget elementor-widget-text-editor\" data-id=\"bcf3bf6\" data-element_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<h5>Formattare un comando e trasferirlo dalla sessione a Colibr\u00ec..<\/h5><p>La funzione <span style=\"color: #008000;\">Session.<em>send_cmd <\/em><\/span>\u00a0ha il compito di formattare il comando ed i suoi argomenti per trasferirlo in forma intellegibile alla classe <span style=\"color: #008000;\"><em>Ezc_context<\/em> <\/span>connessa.<\/p>\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-275b62c elementor-widget elementor-widget-code-highlight\" data-id=\"275b62c\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard word-wrap\">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-csharp \">\n\t\t\t\t<code readonly=\"true\" class=\"language-csharp\">\n\t\t\t\t\t<xmp>  public bool send_cmd(params arg[] list)\n        {\n            if (id > 0)\n            {\n                Sender send = new Sender(id);\n                return send.push(list);\n            }\n            return false;\n        }<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\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-08b0090 elementor-widget elementor-widget-text-editor\" data-id=\"08b0090\" data-element_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>la funzione riceve sempre una lista di parametri di tipo <a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/csharp\/language-reference\/keywords\/params\"><em>variadic<\/em>,<\/a> essendo variabile il numero di argomenti trattati,<\/p><p>La funzione per prima cosa controlla la validit\u00e0 dell&#8217;id di <em><span style=\"color: #008000;\">Ezc_context<\/span> <\/em>associato, quindi passa la lista degli argomenti ad una classe <strong><em><span style=\"color: #008000;\">Sender<\/span><\/em><\/strong>, specializzata nella formattazione e trasferimento del comando a <span style=\"color: #008000;\"><em>CLB_Ezechiele<\/em><\/span>.<\/p><p><span style=\"text-decoration: underline;\">Notare che la classe <em><span style=\"color: #008000; text-decoration: underline;\">Sender<\/span> <\/em>istanziata \u00e8 inizializzata con il valore dell&#8217;id di contesto gestito (vedi la funzione <em><span style=\"color: #008000; text-decoration: underline;\">Session_open_connection()<\/span><\/em>).<\/span><\/p>\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-291ad310 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"291ad310\" data-element_type=\"section\">\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-50 elementor-top-column elementor-element elementor-element-46e01280\" data-id=\"46e01280\" data-element_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-6a77bf18 elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"6a77bf18\" data-element_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 decoding=\"async\" data-attachment-id=\"4276\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/next_step\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?fit=256%2C256&amp;ssl=1\" data-orig-size=\"256,256\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"next_step\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?fit=256%2C256&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?fit=256%2C256&amp;ssl=1\" tabindex=\"0\" role=\"button\" width=\"256\" height=\"256\" src=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?fit=256%2C256&amp;ssl=1\" class=\"attachment-large size-large wp-image-4276\" alt=\"\" srcset=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?w=256&amp;ssl=1 256w, https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?resize=150%2C150&amp;ssl=1 150w\" sizes=\"(max-width: 256px) 100vw, 256px\" data-attachment-id=\"4276\" data-permalink=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-parte-seconda\/admin\/2021\/03\/attachment\/next_step\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?fit=256%2C256&amp;ssl=1\" data-orig-size=\"256,256\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"next_step\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?fit=256%2C256&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/www.colorwave.it\/blog\/wp-content\/uploads\/2021\/03\/next_step.jpg?fit=256%2C256&amp;ssl=1\" role=\"button\" \/>\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\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-71cc961a\" data-id=\"71cc961a\" data-element_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-39592cb elementor-widget elementor-widget-text-editor\" data-id=\"39592cb\" data-element_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>In questo articolo abbiamo descritto alcune funzioni della classe Session, in particolare le modalit\u00e0 di creazione dei comandi mandati a Colibri.<\/p><p>Session \u00e8 una classe che pu\u00f2 essere implementata attraverso nuovi comandi, tutti nella forma descritta in questo testo. Ad esempio potremo aggiungere nuove funzioni di interfaccia con Colibri, o derivare da essa classi che ne ereditano le funzionalit\u00e0 di base.\u00a0<\/p><p>Abbiamo introdotto la classe Sender, che formmatta i messaggi e li trasferisce effettivamente utilizzando le funzioni di Clb.<\/p><p>nel prossimo articolo esporremo quindi\u00a0 le funzionalit\u00e0 della classe Sender e le modalit\u00e0 di codifica dei messaggi mandati a Colibri.<\/p>\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 class=\"elementor-section elementor-top-section elementor-element elementor-element-6a3693b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6a3693b\" data-element_type=\"section\">\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-50 elementor-top-column elementor-element elementor-element-832a86c\" data-id=\"832a86c\" data-element_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-59066b5 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"59066b5\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.colorwave.it\/blog\/colibri\/ezechiele-le-assembly-di-connessione-con-le-dll-di-colibri\/admin\/2021\/03\/\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-arrow-alt-circle-left\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">articolo precedente<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\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<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-df44266\" data-id=\"df44266\" data-element_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-6aadd07 elementor-align-justify elementor-widget elementor-widget-button\" data-id=\"6aadd07\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/wp.me\/p9rwsf-17B\" target=\"_blank\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-arrow-alt-circle-right\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">articolo successivo<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\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>CLB_Ezechiele_net &#8211; la gestione delle sessioni nell&#8217;articolo precedente\u00a0 sono stati introdotti i concetti alla base dell&#8217;assembly CLB_Ezechiele_net, ed abbiamo iniziato una descrizione della Classe Clb. La classe Clb \u00e8 banalmente l&#8217;interfaccia basica\u00a0 fra le classi che ora descriveremo e le funzionalit\u00e0 offerte&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false,"jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[123,90,122],"tags":[],"jetpack_publicize_connections":[],"acf":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9rwsf-15V","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts\/4211"}],"collection":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/comments?post=4211"}],"version-history":[{"count":51,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts\/4211\/revisions"}],"predecessor-version":[{"id":4340,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/posts\/4211\/revisions\/4340"}],"wp:attachment":[{"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/media?parent=4211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/categories?post=4211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.colorwave.it\/blog\/wp-json\/wp\/v2\/tags?post=4211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}