JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Importing an SNA Custom Handshake Class     Java CAPS Documentation
search filter icon
search icon

Document Information

Importing an SNA Custom Handshake Class

Adding a Custom Handshake Class to a Project

Configuring the Adapter for a Custom Handshake Class

To Configure the Adapter

Importing a Custom Handshake Class into a Project

To Import a Custom Handshake Class

Sample Handshake Class

Implementing an SNA Custom Handshake Class

Sample Code for Inbound Mode

Sample Code for Outbound Mode

Implementing an SNA Custom Handshake Class

To further utilize the capabilities of the SNA Adapter, you can implement a custom handshake class in a deployed Project. After the default Collaboration is generated, you can then modify the Collaboration to suit your application’s needs. While you need to write your own code for both Inbound and Outbound SNA modes, the following code is also provided as the source for the class that is implemented in the SNA adapter.

Sample Code for Inbound Mode

package com.stc.connector.snalu62.api;

import com.stc.connector.logging.LogFactory;
import com.stc.connector.logging.Logger;

import com.stc.connector.snalu62.exception.SNAApplicationException;

/*
 * This is a sample class to implement the interface SNACustomerHandshake.
 * It implements a simple Accept_Conversation scenario for windows platform.
*/
public class SNACustomerHandshakeImplSampleAccept implements SNACustomerHandshake {
    public static final String version = "cvs $Revision: 1.1.2.1.2.2 $   
$Date: 2005/11/10 21:40:15 $";
    private Logger logger = LogFactory.getLogger("STC.eWay.SNALU62.
" + getClass().getName());
    private String logMsg;

    /**
     * Constructor
     *
     */
    public SNACustomerHandshakeImplSampleAccept() {
        super();
    }
    /**
     * @see com.stc.connector.snalu62.api.SNACustomerHandshake#startConversation
(com.stc.connector.snalu62.api.SNACPICCalls)
     */
    public void startConversation(SNACPICCalls cpic) throws SNAApplicationException {
        try {
            //do whatever checking logics before/after the following CPIC call
               on your desires
            cpic.cmsltp();

            //do whatever checking logics before/after the following CPIC call
               on your desires
            cpic.cmaccp();
            if (!cpic.getConversationAttributes().returnCodeIs(0) &&   // 0: CM_OK
                !cpic.getConversationAttributes().returnCodeIs(35)) 
            {  //35: CM_OPERATION_INCOMPLETE
                logMsg = "SNACustomerHandshakeImplSampleAccept.startConversation():
                   The return code is <"
                    + cpic.getConversationAttributes().getReturnCode()
                    + ">.";
                logger.error(logMsg);
                throw new SNAApplicationException(logMsg);
            }

            if (cpic.getConversationAttributes().returnCodeIs(35)) 
            {  //35: CM_OPERATION_INCOMPLETE
                logger.info("SNACustomerHandshakeImplSampleAccept.startConversation(): 
                      About to call cmwait ...");
                //do whatever checking logics before/after the following CPIC call
                  on your desires
                cpic.cmwait();
            }

            if (!cpic.getConversationAttributes().returnCodeIs(0) ||
                !cpic.getConversationAttributes().convReturnCodeIs(0)) { // 0: CM_OK
                logMsg = "SNACustomerHandshakeImplSampleAccept.startConversation(): 
                    The return_Code is <"
                    + cpic.getConversationAttributes().getReturnCode()
                    + "> and the conversation_Return_Code is <"
                    + cpic.getConversationAttributes().getConvReturnCode()
                    + ">. SNA conversation is not established.";
                logger.error(logMsg);
                throw new SNAApplicationException(logMsg);
            }

            //do whatever other logics on your desires here
            //...
        } catch (Exception e) {
            logMsg = "SNACustomerHandshakeImplSampleAccept.startConversation(): 
            Failed. Got exception ["
                + e.toString()
                + "].";
            logger.error(logMsg, e);
            throw new SNAApplicationException(logMsg, e);
        }

    }

}

Note - The above code has been wrapped for display purposes.


Sample Code for Outbound Mode

package com.stc.connector.snalu62.api;

import com.stc.connector.logging.LogFactory;
import com.stc.connector.logging.Logger;

import com.stc.connector.snalu62.exception.SNAApplicationException;

/**
 * This is a sample class to implement the interface SNACustomerHandshake.
 * It implements a simple Initialize_Conversation scenario for windows platform.
*/
public class SNACustomerHandshakeImplSampleInitialize implements SNACustomerHandshake {
    public static final String version = "cvs $Revision:
 1.1.2.1.2.2 $   $Date: 2005/11/10 21:40:15 $";
    private Logger logger = LogFactory.getLogger("STC.eWay.SNALU62." + getClass().
getName());
    private String logMsg;

    /**
     * Constructor
     *
     */
    public SNACustomerHandshakeImplSampleInitialize() {
        super();
    }

    /**
     * @see com.stc.connector.snalu62.api.SNACustomerHandshake#startConversation
(com.stc.connector.snalu62.api.SNACPICCalls)
     */
    public void startConversation(SNACPICCalls cpic) throws SNAApplicationException {
        try {
            //do whatever checking logics before/after the following CPIC call on your
                desires
            cpic.cminit();

            //do whatever checking logics before/after the following CPIC call
              on your desires
            cpic.cmssl();

            //do whatever checking logics before/after the following CPIC call on your
               desires
            cpic.cmallc();
            if (!cpic.getConversationAttributes().returnCodeIs(0)) { // 0: CM_OK
                logMsg = "SNACustomerHandshakeImplSampleInitialize.
                 startConversation(): The return_Code is <"
                    + cpic.getConversationAttributes().getReturnCode()
                    + ">. SNA conversation is not established.";
                logger.error(logMsg);
                throw new SNAApplicationException(logMsg);
            }

            //do whatever other logics on your desires here
            //...
        } catch (Exception e) {
            logMsg = "SNACustomerHandshakeImplSampleInitialize.startConversation(): 
               Failed. Got exception ["
                + e.toString()
                + "].";
            logger.error(logMsg, e);
            throw new SNAApplicationException(logMsg, e);
        }

    }

}

Note - The above code has been wrapped for display purposes.