package com.eactive.eai.adapter.wca.global;

import com.eactive.eai.common.server.EAIServerManager;

/** 
* 1. 기능 : WCA Global 상수 정의
* 2. 처리 개요 : 
* 3. 주의사항 
*
* @author  :
* @version : v 1.0.0
* @see     :
* @since   : 2005. 6. 20. 오후 3:21:35
*/
public class WCADefine {
    /**
     * SoftLink 세션 상태 코드 : 연결안됨
     */
    public static final int SESS_STAT_NOTCONN   = 0;
    
    /**
     * SoftLink 세션 상태 코드 : TCP 세션 연결
     */
    public static final int SESS_STAT_READY     = 1;
    
    /**
     * SoftLink 세션 상태 코드 : TCP 세션 사용중 (사용안함)
     */
    public static final int SESS_STAT_INUSE     = 2;
    
    /**
     * TCP Socket 길이 필드 크기
     */
	public static final int LEGTH_FIELD_SIZE = 4; 
	
    /**
     * TCP 데이타 수신 타임아웃 (단위 : 초)
     */
	public static final int DEFAULT_RECEIVE_TIMEOUT = 30;
	
    /**
     * Softlink Socket 연결 Timeout (단위 : milliseconds)
     */
	public static final int DEFAULT_CONNECT_TIMEOUT = 30;     
	
    /**
     * defalut softlink port
     */
	public static final int DEFAULT_SOFTLINK_PORT = 4000;
    
    /**
     * defalut softlink 세션 수
     */
	public static final int DEFAULT_SESS_NUM_PER_GRP = 1;
	
    /**
     *  세션 해제시 복구를 시작하기 전에 Sleep 하는 시간(초)
     */
	public static final int DEFAULT_SESS_RECOVERY_GAP = 5;
	
    /**
     * 백업 전환 체크  DEFAULT_SESS_RECOVERY_GAP * DEFAULT_BACKUP_CONVERSION_CHECK (2분)
     */
    public static final int DEFAULT_BACKUP_CONVERSION_CHECK = 12 * 2; 
    /**
     * default socket receive 타임아웃 시간(초)
     */
	public static final int DEFAULT_SOCK_RCV_TIMEOUT = 10;
	
    /**
     * default 트랜잭션 Timeout 시간(초)
     */
	public static final int DEFAULT_TRANSACTION_TIMEOUT = 180;
	
    /**
     * Delete Registered Recv queue Timeout 시간(초)
     */
	public static final int DEFAULT_TRANSACTION_DELETE_TIMEOUT = 300;
    
    /**
     * EAI instance (EAIServerManager는 WLI 엔진 부팅시 초기화)
     */
    public static final String SERVER_NAME          = EAIServerManager.getInstance().getLocalServerName();
    
    /**
     * SNA 어댑터 Logger 이름
     */
    public static final String ADAPTER_LOGGER_NAME  = "FileLogger{SNA}" + "_" + SERVER_NAME;
     
     /**
      * 어댑터 명
      */   
    public static final String ADAPTER_NAME = "SNAAdapter";
    
    /**
	 * ASCII / EBCDIC코드를 의미, logData() 함수의 파라미터로 사용됨. 
	 */
	public static final char 	ASCII_CODE 	= 'A';
	public static final char 	EBCDIC_CODE = 'E';
    
    /**
     * WCA 세션 로그 파일 기록 여부 (Yes/No)
     */
    public static final String 	WCA_LOG_YES = "1";
    public static final String 	WCA_LOG_NO  = "0";
    
    /**
     * Default WCA 세션 로그 파일 기록 여부
     */
    public static final String 	DEFAULT_WCA_LOG = WCA_LOG_YES;
    
    /**
     * Default WCA 세션 로그 레벨
     */
    public static final int 	DEFAULT_WCA_LOG_LEVEL   = 1;
    
    /**
     * Default WCA 세션 로그 레벨
     */
    public static final String 	DEFAULT_WCA_STRING_LOG_LEVEL   = "DEBUG";
    
    /**
     * Default WCA 세션 로그 사이즈
     */
    public static final int 	DEFAULT_WCA_LOG_SIZE    = 10;
    
    /**
     * LU 그룹 세션 송수신 모드 (SEND)
     */
    public static final String 	LU_GROUP_TRAN_MODE_SEND = "S";
    
    /**
     * LU 그룹 세션 송수신 모드 (RECV)
     */
    public static final String 	LU_GROUP_TRAN_MODE_RECV = "R";
    
    /**
     * 자동 백업 전환 여부 (No/Yes)
     */
    public static final String 	WCA_AUTO_BACKUP_CVS_MODE_NO      = "0";
    public static final String 	WCA_AUTO_BACKUP_CVS_MODE_YES     = "1";
    
    /**
     * Default 자동 백업 전환 여부
     */
    public static final String 	DEFAULT_MANUAL_BACKUP_CVS_MODE   = WCA_AUTO_BACKUP_CVS_MODE_NO;    
    
    /**
     * LU 송수신 RECV ONLY 모드 
     */
    public static final String 	LU_TRAN_MODE_SEND_RECV   = "1";    
    public static final String 	LU_TRAN_MODE_TERMINAL    = "2";    
    public static final String 	LU_TRAN_MODE_SEND_ONLY   = "3";    
    public static final String 	LU_TRAN_MODE_RECV_ONLY   = "4";    
    
    /**
     * LU 송수신 모드 정의
     */
    public static final String[][] LU_TRAN_MODE = {{LU_TRAN_MODE_SEND_RECV, "SENDRECV"},
                                                   {LU_TRAN_MODE_TERMINAL, "TERMINAL"},
                                                   {LU_TRAN_MODE_SEND_ONLY, "SENDONLY"},
                                                   {LU_TRAN_MODE_RECV_ONLY, "RECVONLY"}                 
                                                  };
   
     /**
     * 백업 LU
     */
    public static final String 	DEFAULT_BACKUP_LU_NO   = "0";
    public static final String 	DEFAULT_BACKUP_LU_YES   = "1";        
    public static final String[][] BACKUP_LU_YN = {{DEFAULT_BACKUP_LU_NO, "아니오"},
                                                   {DEFAULT_BACKUP_LU_YES, "예"}
                                                  };
    
    /* 20080526 Start */
    /**
     * 원격 LU 여부
     */
    public static final String 	DEFAULT_REMOTE_LU_NO   = "0";
    public static final String 	DEFAULT_REMOTE_LU_YES   = "1";        
    public static final String[][] REMOTE_LU_YN = {{DEFAULT_REMOTE_LU_NO, "아니오"},
                                                   {DEFAULT_REMOTE_LU_YES, "예"}
                                                  };
    /* 20080526 End */
    
    /**
     * Softlink 설정 정보 변경 실행 파일
     */
    public static final String SOFTLINK_CFG_UPDATE_COMMAND = "/SnaUpdateCfg";
    
    /**
     * Softlink 로그 정보 변경 실행 파일
     */
    public static final String SOFTLINK_LOG_UPDATE_COMMAND = "/SnaLog";
    
    /**
     * Softlink 구동 실행 파일
     */
    //public static final String SOFTLINK_START_COMMAND = "/SnaStart";
	public static final String SOFTLINK_START_COMMAND = "/softman";
    
    /**
     * Softlink 종료 실행 파일
     */
    public static final String SOFTLINK_STOP_COMMAND = "/SnaStop";
    
    /**
     * DFS 메세지
     */
    public static final byte[] DFS_MSG = {(byte)0xC4,(byte)0xC6,(byte)0xE2};    
}

