package com.eactive.eai.adapter.socket; 

import com.eactive.eai.adapter.listener.AdapterException;
import com.eactive.eai.adapter.listener.AdapterListenerSupport;
import com.eactive.eai.adapter.socket.config.*;

/** 
    * 1. 기능 : Socket Adapter의 기동/중지를 위한 Adapter Listener로 FrameWork에서 SocketAdapter를 
    *           중지/기동하기 위한 Socket Adapter Listener이다.
    * 2. 처리 개요 : 
    *     - SocketAdapterManager Instance를 얻은 후 해당 Adapter에 대한 Stop/Start 기능을 수행한다.
    * 3. 주의사항 
    *
    * @param 
    * @return 
    * @exception
    **/
public class SocketAdapterListener extends AdapterListenerSupport
{ 

    public void start() throws AdapterException {

        SocketAdapterManager manager = SocketAdapterManager.getInstance();
        try {
            manager.start(info);    // info : AdapterVO 의 인스탄스
        } catch(Exception e) {
            logger.error("[SocketAdapterListener] cannot start : " + e.getMessage(), e);
            throw new AdapterException("SocketAdapter] start Error. - "+e.getMessage());   
        }
    }
    
    public void stop() throws AdapterException {
        
        SocketAdapterManager manager = SocketAdapterManager.getInstance();
        try {
            if ( info == null ) throw new Exception(" AdapterVO가 NULL입니다.");
            manager.stop(info);    // info : AdapterVO의 인스탄스
        } catch(Exception e) {
            logger.error("[SocketAdapterListener] cannot stop : " + e.getMessage(), e);
            throw new AdapterException("SocketAdapter] stop Error. - "+e.getMessage());   
        }
    }
} 
