transport_xhr added
[brisk.git] / web / Obj / transports.phh
1 <?php
2 /*
3  *  sac-a-push - Obj/transports.phh
4  *
5  *  Copyright (C) 2012 Matteo Nastasi
6  *                          mailto: nastasi@alternativeoutput.it 
7  *                                  matteo.nastasi@milug.org
8  *                          web: http://www.alternativeoutput.it
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful, but
16  * WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABLILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  * General Public License for more details. You should have received a
19  * copy of the GNU General Public License along with this program; if
20  * not, write to the Free Software Foundation, Inc, 59 Temple Place -
21  * Suite 330, Boston, MA 02111-1307, USA.
22  *
23  */
24
25 class Transport_template {
26
27     function Transport_template() {
28     }
29
30     function init($enc, &$header_out, $init_string, $base, $step)
31     {
32     }
33
34     static function fini($init_string, $blockerr)
35     {
36     }
37
38     function chunk($step, $cont)
39     {
40     }
41 }
42
43 class Transport_xhr {
44
45     function Transport_xhr() {
46     }
47
48     function init($enc, &$header_out, $init_string, $base, $step)
49     {
50         $ret = $init_string;
51         if ($enc != 'plain')
52             $header_out['Content-Encoding'] = $enc;
53         $header_out['Cache-Control'] = 'no-cache, must-revalidate';     // HTTP/1.1
54         $header_out['Expires']       = 'Mon, 26 Jul 1997 05:00:00 GMT'; // Date in the past
55         $header_out['Content-type']  = 'application/xml; charset="utf-8"';
56
57         return ($ret);
58     }
59
60     static function fini($init_string, $blockerr)
61     {
62         return ("");
63     }
64
65     function chunk($step, $cont)
66     {
67         return ("@BEGIN@".$cont."@END@");
68     }
69 }
70
71 class Transport_iframe {
72
73     function Transport_iframe() {
74     }
75
76     function init($enc, &$header_out, $init_string, $base, $step)
77     {
78         $ret = "";
79
80         if ($enc != 'plain')
81             $header_out['Content-Encoding'] = $enc;
82         $header_out['Cache-Control'] = 'no-cache, must-revalidate';     // HTTP/1.1
83         $header_out['Expires']       = 'Mon, 26 Jul 1997 05:00:00 GMT'; // Date in the past
84         $header_out['Content-type']  = 'text/html; charset="utf-8"';
85         
86         $ret .= sprintf("<html>
87 <head>
88 <script type=\"text/javascript\" src=\"%scommons.js\"></script>
89 <script type=\"text/javascript\" src=\"%sxynt-streaming-ifra.js\"></script>
90 <script type=\"text/javascript\">
91 var xynt_streaming = \"ready\";", $base, $base);
92         if ($step > 0)
93             $ret .= sprintf("last_clean = %d;\n", ($step-1));
94         $ret .= sprintf("
95 window.onload = function () { if (xynt_streaming != \"ready\") { xynt_streaming.reload(); } };
96 </script> 
97 </head>
98 <body>");
99         $ret .= sprintf("<!-- \n%s -->\n", $init_string);
100
101         return ($ret);
102     }
103
104     static function fini($init_string, $blockerr)
105     {
106         $ret = "";
107         $ret .= sprintf("<html>
108 <head>
109 <script type=\"text/javascript\" src=\"%scommons.js\"></script>
110 <script type=\"text/javascript\" src=\"%sxynt-streaming-ifra.js\"></script>
111 <script type=\"text/javascript\">
112 var xynt_streaming = \"ready\";", self::base_get(), self::base_get());
113         $ret .= sprintf("
114 window.onload = function () { if (xynt_streaming != \"ready\") { xynt_streaming.reload(); } };
115 </script>
116 </head>
117 <body>");
118         $ret .= sprintf("<!-- \n%s -->\n", $init_string);
119         $ret .= sprintf("<script id='hs%d' type='text/javascript'><!--
120 push(\"%s\");
121 // -->
122 </script>", 0, escpush($blockerr) );
123         return ($ret);
124     }
125
126     function chunk($step, $cont)
127     {
128         if ($cont == NULL) {
129             return sprintf("<script id='hs%d' type='text/javascript'><!--
130 push(null);\n// -->\n</script>", $step);
131         }
132         else {
133             return sprintf("<script id='hs%d' type='text/javascript'><!--
134 push(\"%s\");\n// -->\n</script>", $step, escpush($cont) );
135         }
136     }
137 }
138 ?>