summaryrefslogtreecommitdiff
path: root/org
diff options
context:
space:
mode:
authorAudrius Meskauskas <audriusa@Bioinformatics.org>2005-08-09 11:37:46 +0000
committerAudrius Meskauskas <audriusa@Bioinformatics.org>2005-08-09 11:37:46 +0000
commit7204411edbb8b6dcf66591a4aa5398535354369d (patch)
tree1490fc5908f991b218c7395875c8a2f2dafc8f15 /org
parentdfb2ff13fb0deb79953c408e0f66f17927242c9e (diff)
downloadclasspath-7204411edbb8b6dcf66591a4aa5398535354369d.tar.gz
2005-08-09 Audrius Meskauskas <AudriusA@Bioinformatics.org>
* org/omg/CORBA/package.html: Documentation update. * org/omg/DynamicAny/package.html: New file.
Diffstat (limited to 'org')
-rw-r--r--org/omg/CORBA/package.html84
-rw-r--r--org/omg/DynamicAny/package.html87
2 files changed, 138 insertions, 33 deletions
diff --git a/org/omg/CORBA/package.html b/org/omg/CORBA/package.html
index 8fe9acf5d..5885c65ca 100644
--- a/org/omg/CORBA/package.html
+++ b/org/omg/CORBA/package.html
@@ -40,41 +40,59 @@ exception statement from your version. -->
<head><title>GNU Classpath - org.omg.CORBA</title></head>
<body>
-This package provides the support of <a href="www.omg.org">OMG</a>
-<a href="www.CORBA.org">CORBA</a>; see <a href="#overview">overview</a>
-of the implemented functionality. CORBA is an open, vendor independent
-system that applications use to work together over networks. Thie purpose
-of this package is to provide CORBA APIs to java programming language,
-including the fully functional Object Request Broker ({@link org.omg.CORBA.ORB}).
-
+This package provides the support of <a href="http://www.CORBA.org">CORBA</a>;
+see <a href="#overview">overview</a> of the implemented functionality.
+CORBA a system that applications use to work over networks. CORBA messages
+are binary, not text oriented. They practically cary no "data wrapping"
+information like XML &lt;opening&gt; &lt;/closing&gt; tags. Hence CORBA
+objects much easier exchange large amounts of binary data. CORBA can work
+in such data-intensive application areas as telecommunications or radio
+broadcasting.
<a name="overview">
<h4>Overview of the currently implemented CORBA functionality</h4>
-<p>The CORBA implementation in the Classpath project is now a working prototype.
- This prototype is interoperable with Sun's implementation v 1.4, transferring
- object references, primitive types, narrow and wide strings, arrays, structures
- and trees between these two platforms. The thrown exceptions are also transferred
- and handled. The support for stringified object references (IORs) is implemented.
- The redirection commands works, LOCATION_FORWARD_PERM changing the target address
- until the application is restarted and LOCATION_FORWARD redirecting for the
- current session only. Both Little and Big Endian encoded messages
- are accepted. The encoding of the sent messages is the same as used in the
- stringified IOR reference of that object or Big Endian, if no such data
- available.
- </p>
- <p>
- The current release supports the Value types that appeared since v 1.3 and are
- something between CORBA structures (no methods, data local) and CORBA objects
- (both methods and data remote). Value type has local data, can have
- local methods and is transferred by value, not by IOR reference.
- </p>
- <p>
- You can use both request-oriented (based on {@link org.omg.CORBA.Request})
- and stream-oriented (based on {@link org.omg.CORBA.portable.ObjectImpl})
- invocation models. The current release includes the working examples, demonstrating
- the client-server communication using both methods. These examples also show,
- how to use the Classpath naming service. The IDL compiler is not yet written,
- but as a side effect of the required compatibility, the implementation seems
- accepting the output of the Sun's 1.3 idlj.</p>
+The CORBA implementation in the Classpath project is now a working
+prototype.
+<ul>
+<li>This prototype is interoperable with Sun's implementation v 1.4,
+transferring object references, primitive types, narrow and wide strings,
+arrays, structures and trees between these two platforms.
+</li>
+<li>The prototype provides interoperable support for the Abstract interface
+ and Value types. Those appear in 1.3, being a feature of CORBA 2.3.
+</li>
+<li>The remote exceptions are also transferred and handled as expected.
+</li>
+<li>The support for parsing stringified object references (IORs), both
+Big and Little Endian encoded, is implemented.
+</li>
+<li>The redirection commands works, LOCATION_FORWARD_PERM changing the
+target address until the application is restarted and LOCATION_FORWARD
+redirecting for the current session only.
+</li>
+<li>Both Little and Big Endian encoded messages are accepted. The encoding
+of the sent messages is the same as used in the stringified IOR reference
+of that object or Big Endian, if no such data available.
+</li>
+<li>You can use both request-oriented (based on {@link org.omg.CORBA.Request}
+and stream-oriented (based on {@link org.omg.CORBA.portable.ObjectImpl}
+invocation models. The current release includes the working examples,
+demonstrating the client-server communication using both methods.
+</li>
+<li>These examples also show, how to use the Classpath naming service.
+</li>
+<li>The IDL compiler is not yet written (and not even started), but as a
+ side effect of the required compatibility, the implementation seems
+accepting the output of the Sun's idlj.
+</li>
+<li>The Portable Object Adapter is already released. For details on POA,
+see the {@link org.omg.PortableServer} package.</li>
+<li>We provide the implementation of the {@link org.omg.DynamicAny}
+package. ORB returns the working DynAnyFactory that produces working
+DynAny's as defined in OMG specification.</li>
+<li>All GNU Classpath classes in omg.org namespace are newly written using
+ the OMG .pdf document (Version 3.0.3, formal/04-03-12).
+</li>
+</ul>
@author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
</body>
diff --git a/org/omg/DynamicAny/package.html b/org/omg/DynamicAny/package.html
new file mode 100644
index 000000000..997006d2c
--- /dev/null
+++ b/org/omg/DynamicAny/package.html
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<!-- package.html -
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. -->
+
+<html>
+<head><title>GNU Classpath - org.omg.DynamicAny</title></head>
+
+<body>
+<p>DynAny's allow to work with data structures, exact content of those is not
+known at the time of compilation. In this way, the conception of DynAny
+remebers the java reflection mechanism. DynAny usually obtain the value from
+the {@link org.omg.CORBA.Any} that, if needed, can carry highly nested data
+structures (like array of sequences of unions). DynAny's allow to see/modify
+all parts of such structures. This is especially helpful for writing generic
+servers (bridges, event channels supporting, filtering and so on). Similarly,
+DynAny's can create an Any at runtime, without having static knowledge of its
+type. This is helpful for writing generic clients like browsers, debuggers or
+ user interface tools.
+</p><p>
+The API clearly states that DynAny and DynAnyFactory objects are local and
+cannot be transferred to remote server or client. While such methods are
+formally defined in the corresponding helpers, they simply always throw MARSHAL.
+</p><p>
+DynAny's are created by {@link DynAnyFactory}. The factory is obtaines by
+{@link org.omg.CORBA.ORB#resolve_initial_references):
+<code>
+ORB orb = ORB.init(new String[0], null);
+DynAnyFactory f = DynAnyFactoryHelper.narrow(orb.resolve_initial_references("DynAnyFactory"));
+</code>
+DynAny's are also returned by some methods, invoked on another DynAny.
+</p><p>
+The primitive types like string or char are wrapped into an ordinary DynAny. It
+has multiple methods for setting/getting the content like
+{@link DynAnyOperations#get_string()} or
+{@link DynAnyOperations#insert_string(String)}. The more complex types like
+sequences or structures are wrapped into specialised DynAny's, providing means
+to access the enclosed members. In this case, the DynAny has the
+"internal cursor", normally pointing at one of the members in the data
+structure. The "internal cursor" can be set to the needed position
+{@link DynAnyOperations#seek(int)} or advanced forward
+({@link DynAnyOperations#next()}. The member under cursor is returned by
+{@link DynAnyOperations#current_component()}. For composite DynAnys the
+methods like {@link DynAnyOperations#get_string()} or
+{@link DynAnyOperations#insert_string(String)} apply to the selected member,
+not to the complex DynAny in general.
+</p><p>
+DynAnys are created and optimized for traversing values extracted from anys
+or constructing values of anys at runtime. OMG does not recommend to use them
+for other purposes.
+</p><p>
+@author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
+</body>
+</html> \ No newline at end of file