File: node43.html

package info (click to toggle)
babel 0.10.2-1
  • links: PTS
  • area: contrib
  • in suites: sarge
  • size: 43,932 kB
  • ctags: 29,707
  • sloc: java: 74,695; ansic: 73,142; cpp: 40,649; sh: 18,411; f90: 10,062; fortran: 6,727; python: 6,406; makefile: 3,866; xml: 118; perl: 48
file content (138 lines) | stat: -rw-r--r-- 4,986 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
original version by:  Nikos Drakos, CBLU, University of Leeds
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Writing the SIDL File</TITLE>
<META NAME="description" CONTENT="Writing the SIDL File">
<META NAME="keywords" CONTENT="users_guide">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">

<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">

<LINK REL="STYLESHEET" HREF="users_guide.css">

<LINK REL="next" HREF="node44.html">
<LINK REL="previous" HREF="node42.html">
<LINK REL="up" HREF="node41.html">
<LINK REL="next" HREF="node44.html">
</HEAD>

<BODY >

<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html1213"
  HREF="node44.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1207"
  HREF="node41.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1201"
  HREF="node42.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1209"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1211"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1214"
  HREF="node44.html">Writing the Implementation</A>
<B> Up:</B> <A NAME="tex2html1208"
  HREF="node41.html">Hello World Tutorial</A>
<B> Previous:</B> <A NAME="tex2html1202"
  HREF="node42.html">Introduction</A>
 &nbsp; <B>  <A NAME="tex2html1210"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1212"
  HREF="node317.html">Index</A></B> 
<BR>
<BR></DIV>
<!--End of Navigation Panel-->

<H1><A NAME="SECTION02320000000000000000"></A><A NAME="1505"></A>
<BR>
Writing the SIDL File
</H1>

<P>
The ``Hello World!'' program will be written in a directory called 
hello/ and place the client library in a subdirectory hello/lib/:
<BLOCKQUOTE>
<TT> <TT>%</TT> <TT><B>mkdir hello</B></TT>
<BR><TT>%</TT> <TT><B>cd hello</B></TT>
<BR><TT>%</TT> <TT><B>mkdir lib</B></TT>
<BR>
</TT></BLOCKQUOTE>
<P>
The first step is to write a SIDL file.  
Recall that SIDL is an interface definition language 
(IDL) that describes the calling interface for a scientific library.  
It is used by the Babel tools to generate glue code that hooks 
together different programming languages.  
A complete description of SIDL can be found in Chapter&nbsp;<A HREF="node47.html#c:basics">5</A>.

<P>
For this particular application, we will write a SIDL file 
that contains a class World in a package Hello.  
Method getMsg() in class World returns a string containing 
the traditional computer greeting.  
Using your favorite text editor, create a file called 
hello.sidl in the hello/ directory containing the following:

<P>
<BR>
<PRE  CLASS="verbatim">      package Hello version 1.0 {
        class World {
          string getMsg();
        }
      }
</I></PRE></td></tr></table></blockquote>
<P>
The package statement provides a scope (or namespace) for class
World, which contains only one method, getMsg().  The version clause of the
statement identifies this as version 1.0 of the Hello package.  

<P>

<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html1213"
  HREF="node44.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> 
<A NAME="tex2html1207"
  HREF="node41.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> 
<A NAME="tex2html1201"
  HREF="node42.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> 
<A NAME="tex2html1209"
  HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> 
<A NAME="tex2html1211"
  HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A> 
<BR>
<B> Next:</B> <A NAME="tex2html1214"
  HREF="node44.html">Writing the Implementation</A>
<B> Up:</B> <A NAME="tex2html1208"
  HREF="node41.html">Hello World Tutorial</A>
<B> Previous:</B> <A NAME="tex2html1202"
  HREF="node42.html">Introduction</A>
 &nbsp; <B>  <A NAME="tex2html1210"
  HREF="node14.html">Contents</A></B> 
 &nbsp; <B>  <A NAME="tex2html1212"
  HREF="node317.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->
<ADDRESS>
<br><br>babel-0.10.2<br>users_guide Last Modified 2005-03-23<br><br><a href="http://www.llnl.gov/CASC/components">http://www.llnl.gov/CASC/components</a><br><a href="mailto:components@llnl.gov">components@llnl.gov</a>
</ADDRESS>
</BODY>
</HTML>