本文整理汇总了Java中com.sun.corba.se.impl.encoding.CodeSetComponentInfo.CodeSetContext方法的典型用法代码示例。如果您正苦于以下问题:Java CodeSetComponentInfo.CodeSetContext方法的具体用法?Java CodeSetComponentInfo.CodeSetContext怎么用?Java CodeSetComponentInfo.CodeSetContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.sun.corba.se.impl.encoding.CodeSetComponentInfo
的用法示例。
在下文中一共展示了CodeSetComponentInfo.CodeSetContext方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getCodeSetContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetComponentInfo.CodeSetContext getCodeSetContext() {
// Needs to be synchronized for the following case when the client
// doesn't send the code set context twice, and we have two threads
// in ServerRequestDispatcher processCodeSetContext.
//
// Thread A checks to see if there is a context, there is none, so
// it calls setCodeSetContext, getting the synch lock.
// Thread B checks to see if there is a context. If we didn't synch,
// it might decide to outlaw wchar/wstring.
if (codeSetContext == null) {
synchronized(this) {
return codeSetContext;
}
}
return codeSetContext;
}
示例2: createCharBTCConverter
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
/**
* Override the default CDR factory behavior to get the
* negotiated code sets from the connection.
*
* These are only called once per message, the first time needed.
*
* In the local case, there is no Connection, so use the
* local code sets.
*/
protected CodeSetConversion.BTCConverter createCharBTCConverter() {
CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();
// If the connection doesn't have its negotiated
// code sets by now, fall back on the defaults defined
// in CDRInputStream.
if (codesets == null)
return super.createCharBTCConverter();
OSFCodeSetRegistry.Entry charSet
= OSFCodeSetRegistry.lookupEntry(codesets.getCharCodeSet());
if (charSet == null)
throw wrapper.unknownCodeset( charSet ) ;
return CodeSetConversion.impl().getBTCConverter(charSet, isLittleEndian());
}
示例3: createCharCTBConverter
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
/**
* Override the default CDR factory behavior to get the
* negotiated code sets from the connection.
*
* These are only called once per message, the first time needed.
*
* In the local case, there is no Connection, so use the
* local code sets.
*/
protected CodeSetConversion.CTBConverter createCharCTBConverter() {
CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();
// If the connection doesn't have its negotiated
// code sets by now, fall back on the defaults defined
// in CDRInputStream.
if (codesets == null)
return super.createCharCTBConverter();
OSFCodeSetRegistry.Entry charSet
= OSFCodeSetRegistry.lookupEntry(codesets.getCharCodeSet());
if (charSet == null)
throw wrapper.unknownCodeset( charSet ) ;
return CodeSetConversion.impl().getCTBConverter(charSet,
isLittleEndian(),
false);
}
示例4: setCodeSetContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public synchronized void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc) {
// Double check whether or not we need to do this
if (codeSetContext == null) {
if (OSFCodeSetRegistry.lookupEntry(csc.getCharCodeSet()) == null ||
OSFCodeSetRegistry.lookupEntry(csc.getWCharCodeSet()) == null) {
// If the client says it's negotiated a code set that
// isn't a fallback and we never said we support, then
// it has a bug.
throw wrapper.badCodesetsFromClient() ;
}
codeSetContext = csc;
}
}
示例5: createWCharBTCConverter
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
protected CodeSetConversion.BTCConverter createWCharBTCConverter() {
CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();
// If the connection doesn't have its negotiated
// code sets by now, we have to throw an exception.
// See CORBA formal 00-11-03 13.9.2.6.
if (codesets == null) {
if (getConnection().isServer())
throw omgWrapper.noClientWcharCodesetCtx() ;
else
throw omgWrapper.noServerWcharCodesetCmp() ;
}
OSFCodeSetRegistry.Entry wcharSet
= OSFCodeSetRegistry.lookupEntry(codesets.getWCharCodeSet());
if (wcharSet == null)
throw wrapper.unknownCodeset( wcharSet ) ;
// For GIOP 1.2 and UTF-16, use big endian if there is no byte
// order marker. (See issue 3405b)
//
// For GIOP 1.1 and UTF-16, use the byte order the stream if
// there isn't (and there shouldn't be) a byte order marker.
//
// GIOP 1.0 doesn't have wchars. If we're talking to a legacy ORB,
// we do what our old ORBs did.
if (wcharSet == OSFCodeSetRegistry.UTF_16) {
if (getGIOPVersion().equals(GIOPVersion.V1_2))
return CodeSetConversion.impl().getBTCConverter(wcharSet, false);
}
return CodeSetConversion.impl().getBTCConverter(wcharSet, isLittleEndian());
}
示例6: CodeSetServiceContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetServiceContext( CodeSetComponentInfo.CodeSetContext csc )
{
this.csc = csc ;
}
示例7: getCodeSetContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetComponentInfo.CodeSetContext getCodeSetContext()
{
return csc ;
}
示例8: addCodeSetServiceContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
protected void addCodeSetServiceContext(CorbaConnection conn,
ServiceContexts ctxs,
GIOPVersion giopVersion) {
// REVISIT. OMG issue 3318 concerning sending the code set
// service context more than once was deemed too much for the
// RTF. Here's our strategy for the moment:
//
// Send it on every request (necessary in cases of fragmentation
// with multithreaded clients or when the first thing on a
// connection is a LocateRequest). Provide an ORB property
// to disable multiple sends.
//
// Note that the connection is null in the local case and no
// service context is included. We use the ORB provided
// encapsulation streams.
//
// Also, there will be no negotiation or service context
// in GIOP 1.0. ISO8859-1 is used for char/string, and
// wchar/wstring are illegal.
//
if (giopVersion.equals(GIOPVersion.V1_0) || conn == null)
return;
CodeSetComponentInfo.CodeSetContext codeSetCtx = null;
if (conn.getBroker().getORBData().alwaysSendCodeSetServiceContext() ||
!conn.isPostInitialContexts()) {
// Get the negotiated code sets (if any) out of the connection
codeSetCtx = conn.getCodeSetContext();
}
// Either we shouldn't send the code set service context, or
// for some reason, the connection doesn't have its code sets.
// Perhaps the server didn't include them in the IOR. Uses
// ISO8859-1 for char and makes wchar/wstring illegal.
if (codeSetCtx == null)
return;
CodeSetServiceContext cssc = new CodeSetServiceContext(codeSetCtx);
ctxs.put(cssc);
}
示例9: performCodeSetNegotiation
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
protected void performCodeSetNegotiation(CorbaMessageMediator messageMediator)
{
CorbaConnection conn =
(CorbaConnection) messageMediator.getConnection();
IOR ior =
((CorbaContactInfo)messageMediator.getContactInfo())
.getEffectiveTargetIOR();
GIOPVersion giopVersion = messageMediator.getGIOPVersion();
// XXX This seems to be a broken double checked locking idiom: FIX IT!
// conn.getCodeSetContext() is null when no other requests have
// been made on this connection to trigger code set negotation.
if (conn != null &&
conn.getCodeSetContext() == null &&
!giopVersion.equals(GIOPVersion.V1_0)) {
synchronized(conn) {
// Double checking. Don't let any other
// threads use this connection until the
// code sets are straight.
if (conn.getCodeSetContext() != null)
return;
// This only looks at the first code set component. If
// there can be multiple locations with multiple code sets,
// this requires more work.
IIOPProfileTemplate temp =
(IIOPProfileTemplate)ior.getProfile().
getTaggedProfileTemplate();
Iterator iter = temp.iteratorById(TAG_CODE_SETS.value);
if (!iter.hasNext()) {
// Didn't have a code set component. The default will
// be to use ISO8859-1 for char data and throw an
// exception if wchar data is used.
return;
}
// Get the native and conversion code sets the
// server specified in its IOR
CodeSetComponentInfo serverCodeSets
= ((CodeSetsComponent)iter.next()).getCodeSetComponentInfo();
// Perform the negotiation between this ORB's code sets and
// the ones from the IOR
CodeSetComponentInfo.CodeSetContext result
= CodeSetConversion.impl().negotiate(
conn.getBroker().getORBData().getCodeSetComponentInfo(),
serverCodeSets);
conn.setCodeSetContext(result);
}
}
}
示例10: getCodeSets
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
private CodeSetComponentInfo.CodeSetContext getCodeSets() {
if (getConnection() == null)
return CodeSetComponentInfo.LOCAL_CODE_SETS;
else
return getConnection().getCodeSetContext();
}
示例11: createWCharCTBConverter
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
protected CodeSetConversion.CTBConverter createWCharCTBConverter() {
CodeSetComponentInfo.CodeSetContext codesets = getCodeSets();
// If the connection doesn't have its negotiated
// code sets by now, we have to throw an exception.
// See CORBA formal 00-11-03 13.9.2.6.
if (codesets == null) {
if (getConnection().isServer())
throw omgWrapper.noClientWcharCodesetCtx() ;
else
throw omgWrapper.noServerWcharCodesetCmp() ;
}
OSFCodeSetRegistry.Entry wcharSet
= OSFCodeSetRegistry.lookupEntry(codesets.getWCharCodeSet());
if (wcharSet == null)
throw wrapper.unknownCodeset( wcharSet ) ;
boolean useByteOrderMarkers
= ((ORB)orb()).getORBData().useByteOrderMarkers();
// With UTF-16:
//
// For GIOP 1.2, we can put byte order markers if we want to, and
// use the default of big endian otherwise. (See issue 3405b)
//
// For GIOP 1.1, we don't use BOMs and use the endianness of
// the stream.
if (wcharSet == OSFCodeSetRegistry.UTF_16) {
if (getGIOPVersion().equals(GIOPVersion.V1_2)) {
return CodeSetConversion.impl().getCTBConverter(wcharSet,
false,
useByteOrderMarkers);
}
if (getGIOPVersion().equals(GIOPVersion.V1_1)) {
return CodeSetConversion.impl().getCTBConverter(wcharSet,
isLittleEndian(),
false);
}
}
// In the normal case, let the converter system handle it
return CodeSetConversion.impl().getCTBConverter(wcharSet,
isLittleEndian(),
useByteOrderMarkers);
}
示例12: CodeSetServiceContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetServiceContext(InputStream is, GIOPVersion gv)
{
super(is, gv) ;
csc = new CodeSetComponentInfo.CodeSetContext() ;
csc.read( (MarshalInputStream)in ) ;
}
示例13: getCodeSetContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetComponentInfo.CodeSetContext getCodeSetContext();
示例14: setCodeSetContext
import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc);