gnu.CORBA.GIOP

Class CodeSetServiceContext

Implemented Interfaces:
IDLEntity, Serializable

public class CodeSetServiceContext
extends ServiceContext

The code set service context. This context must be included in all messages that use wide characters.

Field Summary

static int
ID
The context code sets id.
static CodeSetServiceContext
STANDARD
The standard component to include in the messages.
int
char_data
The encoding, used to transfer the narrow (1 byte) character data.
int
wide_char_data
The encoding, used to transfer the wide character data.

Fields inherited from class gnu.CORBA.GIOP.ServiceContext

ActivityService, BI_DIR_IIOP, ChainBypassCheck, ChainBypassInfo, CodeSets, ExceptionDetailMessage, FORWARDED_IDENTITY, FT_GROUP_VERSION, FT_REQUEST, INVOCATION_POLICIES, LogicalThreadId, RTCorbaPriority, RTCorbaPriorityRange, SecurityAttributeService, SendingContextRunTime, TransactionService, UnknownExceptionInfo, context_data, context_id

Method Summary

static CodeSetServiceContext
find(ServiceContext[] contexts)
Find and return the code set service context in the give contexts array.
static CodeSetServiceContext
negotiate(IOR.CodeSets_profile profile)
Select the suitable encoding that is defined in the provided profile.
protected static int
negotiate(IOR.CodeSets_profile.CodeSet_component profile, int our_native, int final_decission)
Negotiate about the character encoding.
void
readContext(AbstractCdrInput input)
Read the context from the given stream.
String
toString()
Return a string representation.
void
write(AbstractCdrOutput output)
Write the context to the given stream, including the code sets id.

Methods inherited from class gnu.CORBA.GIOP.ServiceContext

add, add, find, findContext, findContext, read, readSequence, toString, write, writeSequence

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

ID

public static final int ID
The context code sets id.
Field Value:
1

STANDARD

public static final CodeSetServiceContext STANDARD
The standard component to include in the messages.

char_data

public int char_data
The encoding, used to transfer the narrow (1 byte) character data. The default value is taken from CharSets_OSF.NATIVE_CHARACTER.

wide_char_data

public int wide_char_data
The encoding, used to transfer the wide character data. The default value is taken from CharSets_OSF.NATIVE_WIDE_CHARACTER.

Method Details

find

public static CodeSetServiceContext find(ServiceContext[] contexts)
Find and return the code set service context in the give contexts array. Returns STANDARD if no code set context is present.
Parameters:
contexts - the array of contexts, can be null.

negotiate

public static CodeSetServiceContext negotiate(IOR.CodeSets_profile profile)
Select the suitable encoding that is defined in the provided profile. TODO character encoding. Now the encoding can be set, but it is ignored. If you take this task, scan 'TODO character encoding' for relevant places.

negotiate

protected static int negotiate(IOR.CodeSets_profile.CodeSet_component profile,
                               int our_native,
                               int final_decission)
Negotiate about the character encoding. Prefer our native encoding, if no, prefer IORs native encoding, if no, find any encoding, supported by both sides, if no, return the specified final decission.
Parameters:
profile - the component profile in IOR.
our_native - our native encoding
final_decission - the encoding that must be returned if no compromise is found.
Returns:
the resulted encoding.

readContext

public void readContext(AbstractCdrInput input)
Read the context from the given stream. Does not read the code sets id.

toString

public String toString()
Return a string representation.
Overrides:
toString in interface ServiceContext

write

public void write(AbstractCdrOutput output)
Write the context to the given stream, including the code sets id.
Overrides:
write in interface ServiceContext

CodeSet_sctx.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., 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.