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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168
|
<!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>SCL Files for Dynamic Loading</TITLE>
<META NAME="description" CONTENT="SCL Files for Dynamic Loading">
<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="node198.html">
<LINK REL="previous" HREF="node196.html">
<LINK REL="up" HREF="node187.html">
<LINK REL="next" HREF="node198.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html3663"
HREF="node198.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html3657"
HREF="node187.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html3651"
HREF="node196.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html3659"
HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html3661"
HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html3664"
HREF="node198.html">Deployment of Babel Enabled</A>
<B> Up:</B> <A NAME="tex2html3658"
HREF="node187.html">Building Portable Polyglot Software</A>
<B> Previous:</B> <A NAME="tex2html3652"
HREF="node196.html">SIDL Library Issues</A>
<B> <A NAME="tex2html3660"
HREF="node14.html">Contents</A></B>
<B> <A NAME="tex2html3662"
HREF="node317.html">Index</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION04150000000000000000"></A>
<A NAME="11233"></A>
<BR>
SCL Files for Dynamic Loading
</H1>
<P>
If you generate a dynamic-linked library containing implementations of
SIDL classes, you must also generate a SIDL Class List file (SCL
file). An SCL file contains metadata about zero or more dynamic-linked
libraries; for each dynamic-linked library, the SCL file has the list
of SIDL classes implemented in that library. The
<TT>sidl.Loader.findLibrary</TT> method searches SCL files when trying
to find the implementation (or some other aspect) of a SIDL class.
<P>
The SCL file is an XML file with three kinds of elements. The top
level element is <TT>scl</TT> which contains zero or more <TT>library</TT>
elements. The <TT>library</TT> element has several attributes, and it
contains zero or more <TT>class</TT> elements. The <TT>library</TT>
element has three required attributes, <TT>uri</TT>, <TT>scope</TT> and
<TT>resolution</TT>, and two optional attributes, <TT>md5</TT> and
<TT>sha1</TT>. The <TT>uri</TT> is a local filename including path or a
network <TT>url</TT> indicating where the library is stored. The
<TT>scope</TT> attribute allows developers to suggest whether the
library should be loaded in a <TT>local</TT> or the <TT>global</TT>
namespace. The developer can suggest <TT>lazy</TT> or <TT>now</TT> symbol
resolution using the <TT>scope</TT> attribute. The <TT>md5</TT> and
<TT>sha1</TT> are optional message digests to confirm that the library
has not been modified or replaced. The <TT>class</TT> element has two
required elements, <TT>name</TT> and <TT>desc</TT>. The <TT>name</TT> field
is the name of the class, and <TT>desc</TT> indicates what kind of
information is held in the library. Each class contained in the
dynamic-linked library should be listed in the SCL file. For now, the
only <TT>desc</TT> values with standardized meanings of <TT>ior/impl</TT>,
<TT>java</TT> and <TT>python/impl</TT>. <TT>ior/impl</TT> indicates the
dynamic-linked library contains the IOR object and implementation for
the class, and <TT>java</TT> indicates that the library has the Java JNI
wrapper object code. <TT>python/impl</TT> has the Python skeletons and
implementation libraries.
<P>
Here is an the SCL file for the SIDL runtime library installed in
<TT>/usr/local</TT>.
<BR>
<PRE CLASS="verbatim"><?xml version="1.0" ?>
<scl>
<library uri="/usr/local/lib/libsidl.la" scope="global" resolution="now" >
<class name="SIDL.BaseClass" desc="ior/impl" />
<class name="SIDL.ClassInfoI" desc="ior/impl" />
<class name="SIDL.DLL" desc="ior/impl" />
<class name="SIDL.Loader" desc="ior/impl" />
<class name="SIDL.Boolean" desc="java" />
<class name="SIDL.Character" desc="java" />
<class name="SIDL.DoubleComplex" desc="java" />
<class name="SIDL.Double" desc="java" />
<class name="SIDL.FloatComplex" desc="java" />
<class name="SIDL.Float" desc="java" />
<class name="SIDL.Integer" desc="java" />
<class name="SIDL.Long" desc="java" />
<class name="SIDL.Opaque" desc="java" />
<class name="SIDL.SIDLException" desc="ior/impl" />
<class name="SIDL.String" desc="java" />
</library>
</scl>
</PRE></td></tr></table></blockquote>It's worth noting that the <TT>uri</TT> can be a libtool metadata file
(<TT>.la</TT>) when the library is located on the local file system or a
dynamic-linked library file (<TT>.so</TT> or another machine dependent
suffix). You cannot have a libtool <TT>.la</TT> when the library is
remote (e.g., <TT>ftp:</TT> or <TT>http:</TT>) because libtool expects the
files references in the <TT>.la</TT> file to be local and in particular
directories.
<P>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html3663"
HREF="node198.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html3657"
HREF="node187.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html3651"
HREF="node196.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html3659"
HREF="node14.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<A NAME="tex2html3661"
HREF="node317.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html3664"
HREF="node198.html">Deployment of Babel Enabled</A>
<B> Up:</B> <A NAME="tex2html3658"
HREF="node187.html">Building Portable Polyglot Software</A>
<B> Previous:</B> <A NAME="tex2html3652"
HREF="node196.html">SIDL Library Issues</A>
<B> <A NAME="tex2html3660"
HREF="node14.html">Contents</A></B>
<B> <A NAME="tex2html3662"
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>
|