# tylko pod konsola2c
#lappend auto_path ~/tcl/tclws ~/tcl/tcllib
# niepotrzebne, jesli uruchamiac przez tclkit_2
# ten przyklada zawiera typ "rekurencyjny" mojTyp2
# tj. zawiera pole "nast" wskazujace na siebie samego...
#
package re WS::Server
package re WS::Embeded
#% 2.3.0
::WS::Server::Service -mode embedded -service qqq -ports 30000
# def typu "mojTyp"
WS::Utils::ServiceTypeDef Server qqq mojTyp {
a {type string}
b {type int}
}
# def typu "mojTyp2",
# ktory zawiera pole "nast" (do budowania list !!!)
# przyklad uzycia: proc met2a
WS::Utils::ServiceTypeDef Server qqq mojTyp2 {
a {type float}
nast {type mojTyp2}
}
::WS::Server::ServiceProc qqq {met2 {type mojTyp()}} {
liczbaElem {type int}
} {zwraca sekwencje struktur typu mojTyp} {
set w {}
for {set i 0} {$i<$liczbaElem} {incr i} {
lappend w [list a "a ku ku ($i)" b $i]
}
return [list met2Result $w]
}
# proc met2a zwraca liste zbudowana z mojTyp2...
# + prosze zwrocic uwage na sposob konczenia tej listy !!
# (nie ma pola nast)
::WS::Server::ServiceProc qqq {met2a {type mojTyp2}} {
} {zwraca liste ???} {
return [list met2aResult {a 1 nast {a 2 nast {a 3}}}]
}
::WS::Server::ServiceProc qqq {razyDwa {type int()}} {
par1 {type int() comment {ciag liczb int}}
} {mnozy elementy ciagu razy 2} {
set w {}
foreach e $par1 {lappend w [expr {$e*2}]}
return [list razyDwaResult $w]
}
::WS::Embeded::Listen 30000
vwait abc