当前位置: 首页>>代码示例>>Java>>正文


Java CodeSetComponentInfo.CodeSetContext方法代码示例

本文整理汇总了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;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:18,代码来源:SocketOrChannelConnectionImpl.java

示例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());
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:27,代码来源:CDRInputObject.java

示例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);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:29,代码来源:CDROutputObject.java

示例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;
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:16,代码来源:SocketOrChannelConnectionImpl.java

示例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());
    }
 
开发者ID:campolake,项目名称:openjdk9,代码行数:36,代码来源:CDRInputObject.java

示例6: CodeSetServiceContext

import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetServiceContext( CodeSetComponentInfo.CodeSetContext csc )
{
    this.csc = csc ;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:5,代码来源:CodeSetServiceContext.java

示例7: getCodeSetContext

import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetComponentInfo.CodeSetContext getCodeSetContext()
{
    return csc ;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:5,代码来源:CodeSetServiceContext.java

示例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);
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:44,代码来源:CorbaClientRequestDispatcherImpl.java

示例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);
        }
    }
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:55,代码来源:CorbaClientRequestDispatcherImpl.java

示例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();
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:7,代码来源:CDRInputObject.java

示例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);
    }
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:50,代码来源:CDROutputObject.java

示例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 ) ;
}
 
开发者ID:aducode,项目名称:openjdk-source-code-learn,代码行数:7,代码来源:CodeSetServiceContext.java

示例13: getCodeSetContext

import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public CodeSetComponentInfo.CodeSetContext getCodeSetContext(); 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:2,代码来源:CorbaConnection.java

示例14: setCodeSetContext

import com.sun.corba.se.impl.encoding.CodeSetComponentInfo; //导入方法依赖的package包/类
public void setCodeSetContext(CodeSetComponentInfo.CodeSetContext csc); 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:2,代码来源:CorbaConnection.java


注:本文中的com.sun.corba.se.impl.encoding.CodeSetComponentInfo.CodeSetContext方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。