Check-in [164e7224e1]

Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Documented Embedded and server user interface change
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:164e7224e10c48dcca0c17b5331b2138f7db76e3
User & Date: oehhar 2012-11-06 17:03:01
Context
2012-11-08 19:18
Corrected document links. check-in: 2f21fba30b user: gerald tags: trunk
2012-11-08 19:10
Added require Tcl 8.4 most places, and set up more places to require dict. Could possibly use WS::Utils as central provider for the latter. check-in: 49a22efbe6 user: andreask tags: aku-require-changes
2012-11-06 17:03
Documented Embedded and server user interface change check-in: 164e7224e1 user: oehhar tags: trunk
2012-11-06 08:19
Documented changes in respond. check-in: b0f33e9a8c user: oehhar tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ServerSide.tcl.

70
71
72
73
74
75
76
77
78

79
80
81
82
83
84
85
#                       Displays an HTML page describing the service
#                 /service/<ServiceName>/wsdl
#                       Returns a WSDL describing the service
#                 /service/<ServiceName>/op
#                       Invoke an operation
#
# Arguments : this procedure uses position independent arguments, they are:
#               -host           - The host name for this service
#                                       Defaults to "localhost"

#               -description    - The HTML description for this service
#               -service        - The service name (this will also be used for
#                                 the Tcl namespace of the procedures that implement
#                                 the operations.
#               -premonitor     - This is a command prefix to be called before
#                                 an operation is called.  The following arguments are
#                                 added to the command prefix:







|
|
>







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#                       Displays an HTML page describing the service
#                 /service/<ServiceName>/wsdl
#                       Returns a WSDL describing the service
#                 /service/<ServiceName>/op
#                       Invoke an operation
#
# Arguments : this procedure uses position independent arguments, they are:
#               -host           - The host name for this service.
#                                 Defaults to "ip:port" in embedded mode,
#                                 and to "localhost" otherwise.
#               -description    - The HTML description for this service
#               -service        - The service name (this will also be used for
#                                 the Tcl namespace of the procedures that implement
#                                 the operations.
#               -premonitor     - This is a command prefix to be called before
#                                 an operation is called.  The following arguments are
#                                 added to the command prefix:

Changes to docs/Creating a Tcl Web Service.html.

100
101
102
103
104
105
106
107

108
109
110
111
112
113
114
115
                     Displays an HTML page describing the service
               /service/&lt;ServiceName&gt;/wsdl
                     Returns a WSDL describing the service
               /service/&lt;ServiceName&gt;/op
                     Invoke an operation
</PRE>
<p><b>Arguments</b>&nbsp;: this procedure uses position independent arguments,
they are: </p><PRE>             -host           - The host name for this service

                                     Defaults to "localhost"
             -description    - The HTML description for this service
             -xmlnamespace   - Extra XML namespaces used by the service
             -service        - The service name (this will also be used for
                                 the Tcl namespace of the procedures that implement
                                 the operations.
             -premonitor     - This is a command prefix to be called before
                                 an operation is called.  The following arguments are







|
>
|







100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
                     Displays an HTML page describing the service
               /service/&lt;ServiceName&gt;/wsdl
                     Returns a WSDL describing the service
               /service/&lt;ServiceName&gt;/op
                     Invoke an operation
</PRE>
<p><b>Arguments</b>&nbsp;: this procedure uses position independent arguments,
they are: </p><PRE>             -host           - The host name for this service.
                               Defaults to "ip:port" in embedded mode,
                               and to "localhost" otherwise."
             -description    - The HTML description for this service
             -xmlnamespace   - Extra XML namespaces used by the service
             -service        - The service name (this will also be used for
                                 the Tcl namespace of the procedures that implement
                                 the operations.
             -premonitor     - This is a command prefix to be called before
                                 an operation is called.  The following arguments are

Changes to docs/Embedded Web Service.html.

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
..
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74




75
76
77
78
79
80
81





82
83


84
85
86
87
88
89
90
91
92
93
94
95
      <H2>Contents</H2></DIV>
      <UL>
        <LI class=toclevel-1><A href="#Loading_the_Webservices_Embedded_Package"><SPAN
        class=tocnumber>1</SPAN> <SPAN class=toctext>Loading the Webservices
        Embedded Package</SPAN></A>
        <LI class=toclevel-1><A href="#Listen"><SPAN
        class=tocnumber>2</SPAN> <SPAN class=toctext>Specify a Port to Receive Request on</SPAN></A>
        <LI class=toclevel-1><A href="#Start"><SPAN
        class=tocnumber>3</SPAN> <SPAN class=toctext>Start Listening for Requests</SPAN></A>
        <LI class=toclevel-1><A href="#Stop"><SPAN
        class=tocnumber>4</SPAN> <SPAN class=toctext>Stop Listening for Requests</SPAN></A>
      </UL>
    </TD>
  </TR>
</TABLE>

<A name=Loading_the_Webservices_Embedded_Package></A>
<H2>Loading the Webservices Server Package </H2>
................................................................................

<P>To load the webservices server package, do: </P><PRE> package require WS::Embedded
</PRE>
<P>This command will only load the server the first time it is used, so it
causes no ill effects to put this in each file declaring a service or service
procedure. </P>

<HR>

<A name=Listen></A>
<H2>Specify a Port to Receive Request on</H2>

<P><B>Procedure Name&nbsp;: <I>::WS::Embeded::Listen</I></B> </P>
<P><B>Description</B>&nbsp;: Instruct the module to listen on a Port, security information.
<P><B>Arguments</B>&nbsp;: this procedure uses position dependent arguments,
they are: </P>
<PRE>
     <I>port    </I> -- Port number to listen on.
     <I>certfile</I> -- Name of the certificate file. Defaults to {}.
     <I>keyfile </I> -- Name of the key file. Defaults to {}.
     <I>userpwds</I> -- A list of username and passwords. Defaults to {}.
     <I>realm   </I> -- The seucrity realm. Defaults to {}.
     <I>logger  </I> -- A logging routines for errors. Defaults to ::WS::Embeded::logger.
</PRE>
<P><B>Returns</B>&nbsp;: Nothing </P>
<P><B>Side-Effects</B>&nbsp;: None </P>
<P><B>Exception Conditions</B>&nbsp;: &nbsp;: None </P>
<P><B>Pre-requisite Conditions</B>&nbsp;: None </P>
<HR>

<A name=Start></A>
<H2>Start Listening for Requests</H2>
<P><B>Procedure Name&nbsp;: <I>::WS::Embeded::Start</I></B> </P>
<P><B>Description</B>&nbsp;: Start listening on all ports (i.e. enter the event loop). </P>
<P><B>Arguments</B>&nbsp;: None</P>
<P><B>Returns</B>&nbsp;: Value that event loop was exited with. </P>
<P><B>Side-Effects</B>&nbsp;: Nothing</P>
<P><B>Exception Conditions</B>&nbsp;: None </P>
<P><B>Pre-requisite Conditions</B>&nbsp;:&nbsp;</P>
<ul>
<p>::WS::Embeded::Listen should have been called for one or more port.</p>
</ul>





<HR>

<A name=Stop></A>
<H2>Stop Listening for Requests</H2>
<P><B>Procedure Name&nbsp;: <I>::WS::Embeded::Start</I></B> </P>
<P><B>Description</B>&nbsp;: Stop listening on all ports (i.e. enter the event loop). </P>
<P><B>Arguments</B>&nbsp;:</P>





<PRE>
    value -- Value that ::WS::Embedded::Stop should return


</PRE>
<P><B>Returns</B>&nbsp;: Nothing </P>
<P><B>Side-Effects</B>&nbsp;: Nothing</P>
<P><B>Exception Conditions</B>&nbsp;: None </P>
<P><B>Pre-requisite Conditions</B>&nbsp;:&nbsp;</P>
<ul>
<p>::WS::Embeded::Start should have been called.</p>
</ul>


</BODY>
</HTML>







|
|

|







 







|












|

<

|



|

|
|
<
<
<
<
<
<
<
<
<
<

>
>
>
>
|


<
<
<
<
>
>
>
>
>

<
>
>

<
<
<
<
<
<
<
<
<


14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
..
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

54
55
56
57
58
59
60
61
62










63
64
65
66
67
68
69
70




71
72
73
74
75
76

77
78
79









80
81
      <H2>Contents</H2></DIV>
      <UL>
        <LI class=toclevel-1><A href="#Loading_the_Webservices_Embedded_Package"><SPAN
        class=tocnumber>1</SPAN> <SPAN class=toctext>Loading the Webservices
        Embedded Package</SPAN></A>
        <LI class=toclevel-1><A href="#Listen"><SPAN
        class=tocnumber>2</SPAN> <SPAN class=toctext>Specify a Port to Receive Request on</SPAN></A>
        <LI class=toclevel-1><A href="#EventQueue"><SPAN
        class=tocnumber>3</SPAN> <SPAN class=toctext>Enter the event queue</SPAN></A>
        <LI class=toclevel-1><A href="#Stop"><SPAN
        class=tocnumber>4</SPAN> <SPAN class=toctext>Shutdown server</SPAN></A>
      </UL>
    </TD>
  </TR>
</TABLE>

<A name=Loading_the_Webservices_Embedded_Package></A>
<H2>Loading the Webservices Server Package </H2>
................................................................................

<P>To load the webservices server package, do: </P><PRE> package require WS::Embedded
</PRE>
<P>This command will only load the server the first time it is used, so it
causes no ill effects to put this in each file declaring a service or service
procedure. </P>

<HR />

<A name=Listen></A>
<H2>Specify a Port to Receive Request on</H2>

<P><B>Procedure Name&nbsp;: <I>::WS::Embeded::Listen</I></B> </P>
<P><B>Description</B>&nbsp;: Instruct the module to listen on a Port, security information.
<P><B>Arguments</B>&nbsp;: this procedure uses position dependent arguments,
they are: </P>
<PRE>
     <I>port    </I> -- Port number to listen on.
     <I>certfile</I> -- Name of the certificate file. Defaults to {}.
     <I>keyfile </I> -- Name of the key file. Defaults to {}.
     <I>userpwds</I> -- A list of username:password. Defaults to {}.
     <I>realm   </I> -- The seucrity realm. Defaults to {}.

</PRE>
<P><B>Returns</B>&nbsp;: Handle of socket </P>
<P><B>Side-Effects</B>&nbsp;: None </P>
<P><B>Exception Conditions</B>&nbsp;: &nbsp;: None </P>
<P><B>Pre-requisite Conditions</B>&nbsp;: None </P>
<HR />

<A name=EventQueue></A>
<H2>Enter the event queue</H2>











<P>To serve any requests, the interpreter must enter the event queue using, for example:</P>
<PRE>
     vwait waitVariable
</PRE>
<HR />

<A name=Stop></A>




<H2>Stop the server</H2>

<P>To stop serving requests, the server socket may be closed.
The socket handle was returned by <I>::WS::Embeded::Listen</I>.
Optionally, the event queue may be stopped as follows:</P>
<PRE>

     close $handle
     set waitVariable 1
</PRE>









</BODY>
</HTML>