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

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

/*-----------------------------------------------------------------------------------------------*/
// 설      명 : Network 관련 클래스 Activator
// 작  성  자 : 
// 변경  이력 : 
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Service
{
    /// <summary>
    /// Load BaseFrame and save information (BaseFrame의 로드하고 정보를 보관한다)
    /// </summary>
    public class Activator : InitServiceAbstract
    {
        /// <summary>
        /// Define main entrance point of project load. (프로젝트 로드의 주진입점을 정의합니다.)
        /// </summary>
        public Activator()
        {
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sClassNm"></param>
        /// <returns></returns>
        public override object InitServiceInstance(string sClassNm)
        {
            //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
            //                    "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Starting !!!");

            object retObj = null;

            //클래스 찾아오기 위함
            switch (sClassNm)
            {
                case ServiceLists.AGENT_NETWORK.NETWORK_FTP:
                    {
                        Cosmos.Network.NetworkFtp agentClass = new Cosmos.Network.NetworkFtp();
                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_NETWORK.NETWORK_IRT:
                    {
                        Cosmos.Network.NetworkIRT agentClass = new Cosmos.Network.NetworkIRT();
                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_NETWORK.NETWORK_JSON:
                    {
                        Cosmos.Network.NetworkJSON agentClass = new Cosmos.Network.NetworkJSON();
                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_NETWORK.NETWORK_VAN_SPCN:
                    {
                        Cosmos.Network.NetworkVanSPCN agentClass = new Cosmos.Network.NetworkVanSPCN();
                        retObj = agentClass;
                        break;
                    }
                case ServiceLists.AGENT_NETWORK.NETWORK_HTTP:
                    {
                        Cosmos.Network.NetworkHttp agentClass = new Cosmos.Network.NetworkHttp();
                        retObj = agentClass;
                        break;
                    } 
            }

            //UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
            //                    "Activator.InitServiceInstance()", "Message : " + sClassNm + " Registration Completed !!!");

            return retObj;
        }
    }
}
