[kaffe] CVS kaffe (robilad): Resynced with GNU Classpath: CORBA fixes

Kaffe CVS cvs-commits at kaffe.org
Mon Mar 21 11:20:58 PST 2005


PatchSet 5585 
Date: 2005/03/21 19:16:19
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
Resynced with GNU Classpath: CORBA fixes

2005-03-19  Audrius Meskauskas  <audriusa at bluewin.ch>

        * org/omg/CORBA/AnySeqHolder.java,
        org/omg/CORBA/AnySeqHelper.java,
        org/omg/CORBA/CompletionStatusHelper.java:
        New files.

Members: 
	libraries/javalib/Makefile.am:1.327->1.328 
	libraries/javalib/Makefile.in:1.414->1.415 
	libraries/javalib/all.files:1.107->1.108 
	libraries/javalib/org/omg/CORBA/AnySeqHelper.java:INITIAL->1.1 
	libraries/javalib/org/omg/CORBA/AnySeqHolder.java:INITIAL->1.1 
	libraries/javalib/org/omg/CORBA/CompletionStatusHelper.java:INITIAL->1.1 

Index: kaffe/libraries/javalib/Makefile.am
diff -u kaffe/libraries/javalib/Makefile.am:1.327 kaffe/libraries/javalib/Makefile.am:1.328
--- kaffe/libraries/javalib/Makefile.am:1.327	Tue Mar 15 01:57:21 2005
+++ kaffe/libraries/javalib/Makefile.am	Mon Mar 21 19:16:19 2005
@@ -4419,6 +4419,8 @@
 	org/omg/CORBA/ARG_OUT.java \
 	org/omg/CORBA/Any.java \
 	org/omg/CORBA/AnyHolder.java \
+	org/omg/CORBA/AnySeqHelper.java \
+	org/omg/CORBA/AnySeqHolder.java \
 	org/omg/CORBA/BAD_CONTEXT.java \
 	org/omg/CORBA/BAD_INV_ORDER.java \
 	org/omg/CORBA/BAD_OPERATION.java \
@@ -4434,6 +4436,7 @@
 	org/omg/CORBA/CharSeqHelper.java \
 	org/omg/CORBA/CharSeqHolder.java \
 	org/omg/CORBA/CompletionStatus.java \
+	org/omg/CORBA/CompletionStatusHelper.java \
 	org/omg/CORBA/Context.java \
 	org/omg/CORBA/ContextList.java \
 	org/omg/CORBA/DATA_CONVERSION.java \
Index: kaffe/libraries/javalib/Makefile.in
diff -u kaffe/libraries/javalib/Makefile.in:1.414 kaffe/libraries/javalib/Makefile.in:1.415
--- kaffe/libraries/javalib/Makefile.in:1.414	Wed Mar 16 10:31:36 2005
+++ kaffe/libraries/javalib/Makefile.in	Mon Mar 21 19:16:19 2005
@@ -5028,6 +5028,8 @@
 	org/omg/CORBA/ARG_OUT.java \
 	org/omg/CORBA/Any.java \
 	org/omg/CORBA/AnyHolder.java \
+	org/omg/CORBA/AnySeqHelper.java \
+	org/omg/CORBA/AnySeqHolder.java \
 	org/omg/CORBA/BAD_CONTEXT.java \
 	org/omg/CORBA/BAD_INV_ORDER.java \
 	org/omg/CORBA/BAD_OPERATION.java \
@@ -5043,6 +5045,7 @@
 	org/omg/CORBA/CharSeqHelper.java \
 	org/omg/CORBA/CharSeqHolder.java \
 	org/omg/CORBA/CompletionStatus.java \
+	org/omg/CORBA/CompletionStatusHelper.java \
 	org/omg/CORBA/Context.java \
 	org/omg/CORBA/ContextList.java \
 	org/omg/CORBA/DATA_CONVERSION.java \
Index: kaffe/libraries/javalib/all.files
diff -u kaffe/libraries/javalib/all.files:1.107 kaffe/libraries/javalib/all.files:1.108
--- kaffe/libraries/javalib/all.files:1.107	Tue Mar 15 01:57:23 2005
+++ kaffe/libraries/javalib/all.files	Mon Mar 21 19:16:20 2005
@@ -3823,6 +3823,8 @@
 org/omg/CORBA/ARG_OUT.java
 org/omg/CORBA/Any.java
 org/omg/CORBA/AnyHolder.java
+org/omg/CORBA/AnySeqHelper.java
+org/omg/CORBA/AnySeqHolder.java
 org/omg/CORBA/BAD_CONTEXT.java
 org/omg/CORBA/BAD_INV_ORDER.java
 org/omg/CORBA/BAD_OPERATION.java
@@ -3838,6 +3840,7 @@
 org/omg/CORBA/CharSeqHelper.java
 org/omg/CORBA/CharSeqHolder.java
 org/omg/CORBA/CompletionStatus.java
+org/omg/CORBA/CompletionStatusHelper.java
 org/omg/CORBA/Context.java
 org/omg/CORBA/ContextList.java
 org/omg/CORBA/DATA_CONVERSION.java
===================================================================
Checking out kaffe/libraries/javalib/org/omg/CORBA/AnySeqHelper.java
RCS:  /home/cvs/kaffe/kaffe/libraries/javalib/org/omg/CORBA/AnySeqHelper.java,v
VERS: 1.1
***************
--- /dev/null	Sun Aug  4 19:57:58 2002
+++ kaffe/libraries/javalib/org/omg/CORBA/AnySeqHelper.java	Mon Mar 21 19:20:57 2005
@@ -0,0 +1,147 @@
+/* AnySeqHelper.java --
+   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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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. */
+
+
+package org.omg.CORBA;
+
+import gnu.CORBA.primitiveArrayTypeCode;
+
+import org.omg.CORBA.TypeCodePackage.BadKind;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * Provides static helper methods for working with
+ * the array of the type {@link Any} (not with the "any array").
+ *
+ * @author Audrius Meskauskas (AudriusA at Bioinformatics.org)
+ */
+public abstract class AnySeqHelper
+{
+  /**
+   * Extract the array of {@link Any}'s from the
+   * given {@link Any}. This implementation expects the
+   * {@link Any} to hold the instance of {@link AnySeqHolder}
+   * that is returned by {@link Any#extract_Streamable() }.
+   *
+   * @param a an Any to extract the array from.
+   *
+   * @return the extracted array.
+   *
+   * @throws ClassCastException if the Any contains something other than the
+   * the {@link AnySeqHolder}.
+   */
+  public static Any[] extract(Any a)
+  {
+    AnySeqHolder h = (AnySeqHolder) a.extract_Streamable();
+    return h.value;
+  }
+
+  /**
+   * Returns the agreed Id, delegating functionality to
+   * the {@link #type()}.id().
+   */
+  public static String id()
+  {
+    try
+      {
+        return type().id();
+      }
+    catch (BadKind ex)
+      {
+        // Should never happen under correct work.
+        throw new Error("Please report this bug.", ex);
+      }
+  }
+
+  /**
+  * Insert into the given {@link Any}[] into the
+  * given {@link Any}. This implementation first creates
+  * a {@link AnySeqHolder} and then calls
+  * {@link Any#insert_Streamable(Streamable)}.
+  *
+  * @param into the target Any.
+  * @param that the array to insert.
+  */
+  public static void insert(Any into, Any[] that)
+  {
+    AnySeqHolder holder = new AnySeqHolder(that);
+    into.insert_Streamable(holder);
+  }
+
+  /**
+   * Reads the {@link Any}[] from the CORBA input stream.
+   * This implementation first creates an instance of
+   * {@link AnySeqHolder} and then delegates functionality
+   * to its <code>_read()</code> method.
+   *
+   * @param input the CORBA (not java.io) stream to read from.
+   * @return the value from the stream.
+   */
+  public static Any[] read(InputStream input)
+  {
+    AnySeqHolder h = new AnySeqHolder();
+    h._read(input);
+    return h.value;
+  }
+
+  /**
+   * Creates and returns a new instance of the TypeCode,
+   * corresponding the array of {@link Any}'s.
+   * The length of the sequence is left with the initial
+   * value 0.
+   */
+  public static TypeCode type()
+  {
+    return new primitiveArrayTypeCode(TCKind.tk_any);
+  }
+
+  /**
+   * Writes the array of {@link Any}'s into the given stream.
+   * This implementation first creates an instance of
+   * {@link AnySeqHolder} and then delegates functionality
+   * to its <code>_write()</code> method.
+   *
+   * @param output the CORBA (not java.io) output stream to write.
+   * @param value the value that must be written.
+   */
+  public static void write(OutputStream output, Any[] value)
+  {
+    AnySeqHolder h = new AnySeqHolder(value);
+    h._write(output);
+  }
+}
===================================================================
Checking out kaffe/libraries/javalib/org/omg/CORBA/AnySeqHolder.java
RCS:  /home/cvs/kaffe/kaffe/libraries/javalib/org/omg/CORBA/AnySeqHolder.java,v
VERS: 1.1
***************
--- /dev/null	Sun Aug  4 19:57:58 2002
+++ kaffe/libraries/javalib/org/omg/CORBA/AnySeqHolder.java	Mon Mar 21 19:20:57 2005
@@ -0,0 +1,128 @@
+/* AnySeqHolder.java --
+   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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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. */
+
+
+package org.omg.CORBA;
+
+import gnu.CORBA.primitiveArrayTypeCode;
+
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+import org.omg.CORBA.portable.Streamable;
+
+/**
+ * A sequence holder for CORBA <code>AnySeq</code> that is mapped into
+ * java <code>Any[]</code>.
+ *
+ * @author Audrius Meskauskas (AudriusA at Bioinformatics.org)
+ */
+public final class AnySeqHolder
+  implements Streamable
+{
+  /**
+   * The <code>Any[]</code> (CORBA <code>AnySeq</code>) value,
+   * held by this AnySeqHolder.
+   */
+  public Any[] value;
+
+  /**
+   * The type code for this holder. Each holder has a different instance.
+   */
+  private final primitiveArrayTypeCode typecode =
+    new primitiveArrayTypeCode(TCKind.tk_any);
+
+  /**
+   * Constructs an instance of AnySeqHolder,
+   * initializing {@link #value} to <code>null</code>.
+   */
+  public AnySeqHolder()
+  {
+  }
+
+  /**
+   * Constructs an instance of AnySeqHolder,  
+   * initializing {@link #value} to the given array
+   */
+  public AnySeqHolder(Any [] a_value)
+  {
+    value = a_value;
+  }
+
+  /**
+   * Fill in the {@link value } field by reading the required data
+   * from the given stream. This method first reads the array size
+   * (as CORBA <code>long</code>and then all Any's.
+   *
+   * @param input the input stream to read from.
+   */
+  public void _read(InputStream input)
+  {
+    value = new Any[ input.read_long() ];
+    for (int i = 0; i < value.length; i++)
+      {
+        value [ i ] = input.read_any();
+      }
+    typecode.setLength(value.length);
+  }
+
+  /**
+   * Returns the TypeCode, corresponding the CORBA type that is stored
+   * using this holder.
+   */
+  public TypeCode _type()
+  {
+    return typecode;
+  }
+
+  /**
+   * Write the {@link value } field to the given stream.
+   * This method first writes the array size
+   * (as CORBA <code>long</code> and then all Any's.
+   *
+   * @param output the output stream to write into.
+   */
+  public void _write(OutputStream output)
+  {
+    output.write_long(value.length);
+
+    for (int i = 0; i < value.length; i++)
+      {
+        output.write_any(value [ i ]);
+      }
+  }
+
+}
===================================================================
Checking out kaffe/libraries/javalib/org/omg/CORBA/CompletionStatusHelper.java
RCS:  /home/cvs/kaffe/kaffe/libraries/javalib/org/omg/CORBA/CompletionStatusHelper.java,v
VERS: 1.1
***************
--- /dev/null	Sun Aug  4 19:57:58 2002
+++ kaffe/libraries/javalib/org/omg/CORBA/CompletionStatusHelper.java	Mon Mar 21 19:20:57 2005
@@ -0,0 +1,116 @@
+/* CompletionStatusHelper.java --
+   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., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 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. */
+
+
+package org.omg.CORBA;
+
+import gnu.CORBA.primitiveArrayTypeCode;
+
+import org.omg.CORBA.TypeCodePackage.BadKind;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.OutputStream;
+
+/**
+ * Provides static helper methods for working with
+ * {@link CompletionStatus}.
+ *
+ * @author Audrius Meskauskas (AudriusA at Bioinformatics.org)
+ */
+public abstract class CompletionStatusHelper
+{
+  /**
+   * Extract the {@link CompletionStatus} from the
+   * given {@link Any}. This implementation expects
+   * the integer (Corba long) value, stating the completion
+   * status.
+   *
+   * @param a an Any to extract the completion status from.
+   *
+   * @return completion status
+   */
+  public static CompletionStatus extract(Any a)
+  {
+    return CompletionStatus.from_int(a.extract_long());
+  }
+
+  /**
+   * Returns the agreed Id. 
+   * @return <code>IDL:omg.org/CORBA/CompletionStatus:1.0</code>, always.
+   */
+  public static String id()
+  {
+    return "IDL:omg.org/CORBA/CompletionStatus:1.0";
+  }
+
+  /**
+  * Insert into the given {@link CompletionStatus} into the
+  * given {@link Any}. This implementation inserts it as an
+  * integer (CORBA long).
+  *
+  * @param into the target Any.
+  * @param that the {@link CompletionStatus} to insert.
+  */
+  public static void insert(Any into, CompletionStatus that)
+  {
+    into.insert_long(that.value());
+  }
+
+  /**
+   * Reads the {@link CompletionStatus} from the CORBA input stream.
+   * This implementation reads an an integer (CORBA long).
+   *
+   * @param input the CORBA (not java.io) stream to read from.
+   * @return the value from the stream.
+   */
+  public static CompletionStatus read(InputStream input)
+  {
+    return CompletionStatus.from_int(input.read_long());
+  }
+
+  /**
+   * Writes the {@link CompletionStatus} into the given stream.
+   * This implementation writes an int (CORBA long), corresponding
+   * the status of completion.
+   *
+   * @param output the CORBA (not java.io) output stream to write.
+   * @param status the value that must be written.
+   */
+  public static void write(OutputStream output, CompletionStatus status)
+  {
+    output.write_long(status.value());
+  }
+}




More information about the kaffe mailing list