using System;
using System.Collections.Generic;
using System.Text;

using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.Common;

/*-----------------------------------------------------------------------------------------------*/
// 설      명 : OLEDevice 관련 클래스 Activator
// 작  성  자 : 
// 변경  이력 : 
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Service
{
    /// <summary>
    /// Load BaseFrame and save information (BaseFrame의 로드하고 정보를 보관한다)
    /// </summary>
    public class Activator : InitServiceAbstract
    {
        /// <summary>
        /// Class별 객체를 리턴
        /// </summary>
        /// <param name="sClassNm"></param>
        /// <returns></returns>
        public override object InitServiceInstance(string sClassNm)
        {
            //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
            //                    "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!");

            object retObj = null;

            switch (sClassNm)
            {
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_MSR:
                    {
                        Cosmos.OLEDevice.DeviceMsr agentClass = new Cosmos.OLEDevice.DeviceMsr();
                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_POSPRINTER:
                    {
                        Cosmos.OLEDevice.DevicePosPrinter agentClass = new Cosmos.OLEDevice.DevicePosPrinter();
                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_SCANNER:
                    {
                        Cosmos.OLEDevice.DeviceScanner agentclass = new Cosmos.OLEDevice.DeviceScanner();
                        retObj = agentclass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_CASHDRAWER:
                    {
                        Cosmos.OLEDevice.DeviceCashdrawer agentClass = new Cosmos.OLEDevice.DeviceCashdrawer();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_CATTERMINAL:
                    {
                        Cosmos.OLEDevice.DeviceCatTerminal agentClass = new Cosmos.OLEDevice.DeviceCatTerminal();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER:
                    {
                        Cosmos.OLEDevice.DeviceICReader agentClass = new Cosmos.OLEDevice.DeviceICReader();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_SIGNPAD:
                    {
                        Cosmos.OLEDevice.DeviceSignPad agentClass = new Cosmos.OLEDevice.DeviceSignPad();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_SCALE:
                    {
                        Cosmos.OLEDevice.DeviceScale agentClass = new Cosmos.OLEDevice.DeviceScale();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_LABELPRINTER:
                    {
                        Cosmos.OLEDevice.DeviceLabelPrinter agentClass = new Cosmos.OLEDevice.DeviceLabelPrinter();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_OURHOME:
                    {
                        Cosmos.OLEDevice.DeviceOurHome agentClass = new Cosmos.OLEDevice.DeviceOurHome();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.DEVICE_TPAYGLE:
                    {
                        Cosmos.OLEDevice.DeviceTPaygle agentClass = new Cosmos.OLEDevice.DeviceTPaygle();

                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_OLEDEVICE.OCB_DIRECT:
                    {
                        Cosmos.OLEDevice.OCBDirect agentClass = new Cosmos.OLEDevice.OCBDirect();

                        retObj = agentClass;
                        break;
                    }
            }

            return retObj;
        }
    }
}
