From cb8d9f1fc051bf846fa1cff34abef0ac3ccffe12 Mon Sep 17 00:00:00 2001 From: Ivan Denisov Date: Mon, 4 Aug 2014 16:44:51 +0800 Subject: [PATCH] Remove allocation of new console from Windows_HostConsole; server example improved and tested, documentation for example added --- BlackBox/_Windows_/Host/Mod/Console.odc | Bin 3987 -> 4083 bytes examples/server/Gtk2 | 1 + examples/server/README | 28 ++++++++++++++++++++++++ examples/server/System/Mod/Init.odc | Bin 3133 -> 2399 bytes examples/server/Tcp/Mod/Client.odc | Bin 9667 -> 0 bytes examples/server/Tcp/Mod/Sender.odc | Bin 3606 -> 0 bytes examples/server/Tcp/Mod/Server.odc | Bin 5006 -> 4789 bytes examples/server/Tcp/Mod/Service.odc | Bin 7621 -> 7549 bytes examples/server/Tcp/Mod/Unloader.odc | Bin 2229 -> 0 bytes examples/server/Tcp/Rsrc/Server.odc | Bin 1296 -> 0 bytes examples/server/bbserver | 2 +- examples/server/buildExample | 5 +++++ examples/server/web/forms.html | 18 --------------- examples/server/web/index.html | 5 ++--- examples/server/web/logo.png | Bin 4991 -> 12664 bytes 15 files changed, 37 insertions(+), 22 deletions(-) create mode 120000 examples/server/Gtk2 create mode 100644 examples/server/README delete mode 100644 examples/server/Tcp/Mod/Client.odc delete mode 100644 examples/server/Tcp/Mod/Sender.odc delete mode 100644 examples/server/Tcp/Mod/Unloader.odc delete mode 100644 examples/server/Tcp/Rsrc/Server.odc create mode 100644 examples/server/buildExample delete mode 100644 examples/server/web/forms.html diff --git a/BlackBox/_Windows_/Host/Mod/Console.odc b/BlackBox/_Windows_/Host/Mod/Console.odc index ffd03b42084eeb74cbf62f3c52e9e0236d00613c..5a0a03920fd106440d1e8b19a78f57d1bde404d3 100644 GIT binary patch delta 749 zcmZutL2DC16n-<=h+DfBX|+<3&Ou2V?Alh4U=dleD+$C+$;R|lH=AT3D=`~(H^Z1_p z_B4PD0DC*14btQbQyJ9g*T=O2VU~I>4~W;9!Ho);BBaSdsH!5UPk8p1YyDVH=JzDf3!-j^v1woN6ikwg-;x#mR!W%6A zx>MEfRt#41!>H)@L%-*)D2hCnS7c3P4V774FW7Y4hgZhf^5W96y0oY$d|k>D%AZOf zc`JKq_gQxTL@djSjBSiXT`y#)GmJdH&-$+03E7(0*9ION4mwWcA}?@5cH?H6R<$T{ z+TC>e+=#1c^}1Fp*{fR3Fzfbety(lJYkmcr%eR^6|J!cVYSmh7Yem7Zb;B$hI;)oq zlc61_7r0JmlR3!@x5MU9!KhgO6|u`^L#vc^yQG;qeu@x5`oDI2J-_|OZ7OG+Wpm68 Y0zY8+BxUNt>h7!YJxb2-^@;1h0WcAwhyVZp delta 532 zcmew?KUsc4J)^+HhB(eRJ_ZI(1_p+(iO*db87Av8+6!~>Ffi}~g_wXe1T33e&*(28 z3gj?0ed2`*>P%kAC_Pz^iHpkvBmy#oY4S2Ad#SlV7Na^yObUpZ5jxr?|7X(TuLntk zWEg$|G1FvQW_2BAEfD_}h|dLL`2jIAm{km7fy`#`0%8`RVUrg!%FEU4V+4sYOaN1o zKo%>)9y6dl;`OLXIDkr6z$OZVSRntgA#`X1xga11p@0qqF&v9B6LT0OJ|J5K3KMpO zMpLK;h{iQg9!R4+x=vZ3B%2tJU{L@P9FrsXmE=Kg1ep%;h8jqc1xT=M2NDe843oDr z%Sv-P>M4ZjDFkO^7F8yumgy)M85kPr85;2Na!!8BtTkDh}E3VC3fx>7UJ zsC~<L+ z`Q6-9ggTJ`>pH#(jg$Ly;0)a$a?q2$ZYg%hGT;HJK-8MvRw@L_8U~R|eNxC{au8t? z7m;@{(zZGf=*1BYqRBGOXylNDsGDb6sK@aLB=#YD9nexJ7-{+%G9>;uohXb~?mILX z`tgK1Zm;JYPQp;avCB+e z2!xUg2M*i{hYF+~KyZO;#oxgV390`;@rfI}-e_7zVZXknnt{6RYjBL$;0umqOF^923w zJ;m@iv&2r=Q@%Epv7ezbjO`4?EaCWSz>4EX*{Trd$b24HFN1A%)U8CjNZXuxJta?Q z;{{^{1DyT&NhTb#4dVqF$v6Tl54ksfoYjQ*^_&pT5dMiq{rmw(wNFNEBS|7}f0U?r zb|))F;}tWC9Kf$`Mb4TL>Fg;)CLCjN!s8)XoQt&YMI?%H~Ok*=_ z@&zzhGeSf3-u=4AxP7Gvfo6Rw@*mweSS+Qb2wn&IZf$z4g|i%I>CSQms`z>Q{8Pj z@|x>*eg7lb@dhfARbEveA;1mh)V+mL(<{!$h|Yf<61yo z4eiz_n4>^T)V-ii_M1Z$;BbK3lv_dHTEZo$Xo;+YT4(+or#6PecG8W=CDNpE&N>}; zsEug}EJWX{+qJqQWv8|4$ZC@aXI{IxM-nr43oEpFT=Z6Ql3DI{uj1vlqIP{g&0SSlzLCR1NNeDt}lm3Ka$S_DH)+l^F9eI)J$?IVxQJ7=W zN|mm9K`%UDH3L({j8L^pWf+zj%oE@cW(gh4#Qh3Kf4=} z)ky&{^B<-7&uZ2n1#Jl_8Z#hSM6nT}B|)V@n*y2yDOZC^v(d&)^j*0wSIXrwQ>h*h z&CS+>{K5i}f>l{>HmG=Y5SCKT6q6oqr(2TyB{@|^Nc~^AGciW`BrIpGRt{ZXEff9J z8byvw_B4}t^=9)jF;Pi_^_`9PE#rETE2<1u*UQqWw<#_g6)Px8lX{T1tUyxG@`;p- zbTsrr88(rc*5DZxt#OggkQHX+H@gU6uG7MwZhCD=z^XeIJSt3GAYe<%VM>&GrdqS7Lc)pv;f!z-JDRcB@s45e+U$% zl_WA98uBX3oZ^Q%xOuG9<_X@Ue|yoC6z<^+rXi=jYK>Bd80i(^kzq`!t>%P7ZzDq;iipVWiYCbkhf2+=pf|`_#^<7Q?a+}4J zY-3{x;?)$e{zgP~NBs4*Hl~}KRABKR>ZI_yJrs)<*51x`_$SZX6!KJ6Od3=^_)FJf X@xz6?;?ft7@lX6Y5Fh_|M~MFbP=W`V diff --git a/examples/server/Tcp/Mod/Client.odc b/examples/server/Tcp/Mod/Client.odc deleted file mode 100644 index 003c10d18da282a18889f2c98bf3153431d0a44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9667 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 ZJQG^#@Ez;<_wVQPvF4iftBP>FeU&1 diff --git a/examples/server/Tcp/Mod/Sender.odc b/examples/server/Tcp/Mod/Sender.odc deleted file mode 100644 index 40f67235aa1e18c74ff613f86bb1f9786983c6e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3606 zcmb_fUvC>l5Z{EqS9<&tNC;jwrc%$YIXRVp)R85U^Chw5*wNWZ6{;c}`$$hc-&wwM zLf%j!-U%ig)2ncvLL&d!aUYBOdq zjvrOy?x^oaX=1n1o_eVINtbD??79<2X(x#MVPfwD{vin?r9D4vrSZ^5P?&@Sn#1t| ze7`dVd7_!vjC+1aP#V6rD#*mvR-_3x^!q|_{H#D_?9Z!=89@IIvlz#Z+WzM$xd_{w zdOcm9tc~ZT5>Dvs389<_4Cw`cXpSJtjCm1DFlT=$t(_yeT zO8q3elj~CBZ8eLK(IvF9_H4^+P88P-ZIbK05z0T0`v=g-({vk!wQfF1tO4E$@$8R;BpoycRyuGdxM7_57+Q5)lRfcwGcla3U$R$ zl4(kax-04^UPyIYWftk05#Ex;Qi*a(ZU@(L0MYIw_ieZfqQ=s-hgcO+zOck^@Wq?( zgXbgluF*kYJ%*7$%n(Up1D+`7R8m#>8l(d#4gwYBrEBnf2OsZh`n85*X(Cy;T9jJo z2q@-f;m((xIDMId^i|2vitFim>y}JZ!^oP2cSUFgv&u4UWzaGw39;|=#GdGQL|CnY znADlmTggsisA>>w%62U$h%Z?9E}rCsCo6b1Ckoj@D(YaSG9(w4%L_^aCM@1Rs)r`r z81eQ&hjNQIKeS8mSu8J=a&Xa1abH!-V4LPVgpgivwyd_9B`k*e0*acT1?^MS-y7}Q z+ffJ+g!XY1`t=}5O@W6m0iv)oQESk1ASrSbK&bNstLZQfL)oD@=}@-c*v;z9DLvDk zpT|;|XLyt5{0-SxVS}!XIr7Sb?NG}oD6)tiNyc<_tUAVD00sN>Q$nLYeTvgck3#wf zA{zJ!L#>WcR}E~6Kb8*}hc0T+mEtuds3!-4pAyLW4|D7%_@jjk#hmuosDk5cbN|N! zlBMRJWEi{pn7$8oK4C9CW*_N)-Ok2((lJYA(d#2Ef}Y+@7{7kXzWC>g`2O|jJ@#|q Hd&ZsuK17_^ diff --git a/examples/server/Tcp/Mod/Server.odc b/examples/server/Tcp/Mod/Server.odc index 0e920c895673ec556d5842f7a804f6b43c2e096c..4ffffe94b834cb346b5a60b11e80f1a80091a694 100644 GIT binary patch delta 142 zcmeBE->N#Hp2&E{sZ(bs6o2b@&+=fQUf_M1TR~ndO-$+i>e_p2}9w Y&Kp>oSezM>QIwjPQf#$Zny;7@0AZ*b$^ZZW delta 362 zcmdn0+NVCDo{3v{Vq+{oVF4vkEXU@B_vEf(S5pIJus& zQ{WF10|QgjCtj$a*<=YOllpETj~O9o50#XI(hQ6shGS7?Vh)4E2QY_W0+>KKKA1Owy8&Dl)y%#-7|v^Q^Kt!HNs$tX%qOex;%#9Pb?0R90g AzyJUM diff --git a/examples/server/Tcp/Mod/Service.odc b/examples/server/Tcp/Mod/Service.odc index 156cf9455abb8bcaff3a773848713c844f5394fd..1fb3aa27539302648691b21b0ec516bd06a1910b 100644 GIT binary patch delta 112 zcmX?V{nu(jJ<~6liH)(G9x@CJoD2*M4ilfdGQE62v5{h6;0KDC0BJB_bYb7z zz*xt^R?Nc4@Qh>MDL*5)b>W>ElTIUa!k diff --git a/examples/server/Tcp/Mod/Unloader.odc b/examples/server/Tcp/Mod/Unloader.odc deleted file mode 100644 index c35025af4ea6ac48543df5d4648a22e3b1448753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2229 zcmai0&5j#I5N^+epJC$w0wf5R)@G6I&C1Hp1$h+-V^6XcUXL}N-4G-YgWV(+rJ>zcpa5NK(ptGlYc`l`C8dwP8*64VZ# z^rPu=p~5t2PtsXF=&NKZDyrl2y(momd8p!~y+2oX*ceh}{CJW^u>vS{+5+LwUZUsH z%UXO;39%c^RKQRb{K~8rlXhh$3t zBlpO9?l#5Sk84`|R(Bv+J6zQ>qphqzoAun4PQU65*Dwutqx8JYrlRoF@TDh*GvNfw zGrzwj#uI~5p?XYGe{oyyqOz2*M9XpC(<8$WKQ#_M2E?7qYvPBZE?Ubbr>QebV&7z{ zlf=IMO*0e~Vwf<2ZA>7&3kf{THz1vXq_sK%UIw;``3}7VDri2Umw}=AGb9+BDAuWx z4vlns9v!YQHo1wE4J`rODA{3^%wkTwM#CDkfA2c|y`e3=>FvERi2Rv~x9fGwpl7f< zc3iJ+S6K8$W|$&XYVs$fe_RD3X>s${!vc{j#38D972sfy(lId%pk&vvEf zNZ0N;ZeKQY>vngV&ZDqJ=2qB|UDxg2kQXn#FP*D$vO@uTJ6)F`Eo%|YI$1D$hs!`= z+8*^maKG!)!0$+oiK(&c^z8ngYs+Ra-;(`^ygszA4Mt=?xGMd2xFOHUMkV2f^mc5h zEx%1ckt^re_HNCSA&P?UuL;+drlxUVdQOf8!@}Ll+_;kLLRRd9GSUGR&%>L|b<$Bj z9l0*gGo$k)E_nfF>#c1G<6)?SSw-nwwTKQB7qIDPus-+_3vFu;Cs+u*X8#>*D+1HULN`x%ovVlB{iu9wQPg}0(m)o)J&8J@_%@$Sm;)M%90}T#K+XREk z+PC>c|%L4aF^_IWRjv)ciOZB<#y&)gpWrphr-=!(1JP5K1Ua41w-jaj+0N0^Y7 zI3gHjigI?9pMAd&3J&NaM&oOw#F?b`0=^*i{Zc6M*%f^AhI8bTY;cUw^X`w_aRUM$ zl_ba`2D$cqO+2Fi04Q?h{~vOHJY-uwa{-KY`YAsT_dgSBPsIn-KZ}#Kew|&4H~$UL cP!~P@G!e3KB<}z9ihln5{FeA}^E)B_0j4YdD*ylh diff --git a/examples/server/Tcp/Rsrc/Server.odc b/examples/server/Tcp/Rsrc/Server.odc deleted file mode 100644 index e55bfd741e65179cf859675a797ac18f1df4cce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1296 zcmZ{kK~EDw6vzLCA`}HtF6u`xabr9fBE%4=je#h{60W9c$FREHAv;q&VMw`|c!7iv z!-e3<&*0g_vqz6|@MxQmcreB{GjDfiv3wGy|>yPjuqfD|pj^!k^WvroWDvfpLkZqJmM$Vdh29ksR8(OSlN?RJAbTw!S)n~Z#Db$J6# zY@-f=1h4HgpqWO4=9*l5n@<8IYc1X^!Hk8=70ex$(d|#M$1~OstR5OeQe+pwS$ry0 zC#qukf6r$eKQFl!im2u4nr8P6)(ch-j2R(>qN)U9)F7$Cg1D+aHL0q%V|aNsgX6Cg zRMl1Xddm8~)dM3KdV@xX;uOSV|EM^2Fy*n=*?Vp{TT{Lbyr5r5->e`W{qZ!Oe;&v2 z!8MP*!ru3W(-plHfma1=`kg7`MdF^%(;Fe~ZtCQ&1b10v?lSdsK6Tw_8arQ8L2l>W z%Krp|wy2RU`NCdyPt#n?T_th%W2ChG1-5s_+;Zv4Z@`SRyR-QDaklWMbrF5toyndP anPrTlRfSu(PqF)F(vBNzTljG22>1tk`6`kC diff --git a/examples/server/bbserver b/examples/server/bbserver index 75404d1..5b6411d 100755 --- a/examples/server/bbserver +++ b/examples/server/bbserver @@ -6,4 +6,4 @@ unset GTK_MODULES export LIBOVERLAY_SCROLLBAR=0 env \ BB_PRIMARY_DIR="../../BlackBox" BB_SECONDARY_DIR="$PWD" \ -../../BlackBox/blackboxc + ../../BlackBox/blackboxc diff --git a/examples/server/buildExample b/examples/server/buildExample new file mode 100644 index 0000000..485fc3a --- /dev/null +++ b/examples/server/buildExample @@ -0,0 +1,5 @@ +DevCompiler.CompileThis TcpService TcpServer TcpBytes TcpTask + +DevCompiler.CompileThis Gtk2GLib Gtk2GObject Gtk2Pango Gtk2Gdk Gtk2Gtk + +DevCompiler.CompileThis Init diff --git a/examples/server/web/forms.html b/examples/server/web/forms.html deleted file mode 100644 index 4f4bca5..0000000 --- a/examples/server/web/forms.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - Oberon web server - - - - -
На главную

- -POST form:
-

- -GET form:
-
- - - diff --git a/examples/server/web/index.html b/examples/server/web/index.html index 309f680..47393c1 100644 --- a/examples/server/web/index.html +++ b/examples/server/web/index.html @@ -7,10 +7,9 @@ -

Cервер на Компонентном паскале

- -Серверное приложение основано на Linux версии BlackBox Component Builder 1.6.

+

The server is based on BlackBox/Component Pascal

+This server application runs on Linux version of BlackBox Component Builder 1.6.
diff --git a/examples/server/web/logo.png b/examples/server/web/logo.png index f40b78486ba1e0378ca6bad72bb3674dca709a99..b276c55b24b2d1765f18480a07476cc8bc325cae 100644 GIT binary patch literal 12664 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 -- 2.29.2