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>
<B> <A NAME="tex2html1210"
HREF="node14.html">Contents</A></B>
<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 <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>
<B> <A NAME="tex2html1210"
HREF="node14.html">Contents</A></B>
<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>
|