home *** CD-ROM | disk | FTP | other *** search
- # -------------------------------------------------------------------------
- # Examples of XML-RPC methods for use with XMLRPC::Domain under the tclhttpd
- # web sever.
- # -------------------------------------------------------------------------
- #
-
- # Load the XMLRPC URL domain handler into the web server and register it under
- # the /rpc URL. All methods need to be defined in the zsplat::RPC
- # namespace and begin with /. Thus my /base64 procedure will be called
- # via the URL http://localhost:8015/soap/base64
- #
-
- package require base64
- package require XMLRPC::Domain
- package require rpcvar
- namespace import -force rpcvar::*
-
- if {[catch {
- XMLRPC::Domain::register -prefix /rpc -namespace tclsoapTest1
- } msg]} {
- if { $msg != "URL prefix \"/rpc\" already registered"} {
- puts "Warning: $msg"
- }
- }
-
- namespace eval tclsoapTest1 {
-
-
- # --------------------------------------------------------------------
- # base64 - convert the input string parameter to a base64 encoded string
- #
- proc /base64 {text} {
- return [rpcvar base64 [base64::encode $text]]
- }
-
- # --------------------------------------------------------------------
- # time - return the servers idea of the time in iso8601 format
- #
- proc /time {} {
- set result [clock format [clock seconds] -format {%Y%m%dT%H:%M:%S}]
- set result [rpcvar dateTime.iso8601 $result]
- return $result
- }
-
- # --------------------------------------------------------------------
- # rcsid - return the RCS version string for this package
- #
- proc /rcsid {} {
- return "${::XMLRPC::Domain::rcs_id}"
- }
-
- # --------------------------------------------------------------------
- # square - test validation of numerical methods.
- #
- proc /square {num} {
- if { [catch {expr $num + 0}] } {
- error "parameter num must be a number"
- }
- return [expr $num * $num]
- }
-
- # --------------------------------------------------------------------
- # sort - sort a list
- #
- proc /sort {aList} {
- return [rpcvar array [lsort $aList]]
- }
-
- # --------------------------------------------------------------------
- # struct - generate a XML-RPC struct type
- #
- proc /platform {} {
- return [rpcvar struct ::tcl_platform]
- }
-
- # --------------------------------------------------------------------
- # Test out a COM calling extension.
- #
- proc /WiRECameras/get_Count {} {
- package require Renicam
- return [renicam count]
- }
-
- # --------------------------------------------------------------------
-
- proc /WiRECameras/Add {} {
- package require Renicam
- return [renicam add]
- }
-
- # ---------------------------------------------------------------------
- }
-
- # -------------------------------------------------------------------------
- #
- # Local variables:
- # mode: tcl
- # End:
-