using FLY.OBJComponents.IService;
using FLY.OBJComponents.Server.OBJProxy;
using FLY.Thick.Blowing.RotaryMachine.IService;
using FLY.Winder.IService;
using FLY.Winder.Server.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;

namespace FLY.Winder.Server.OBJProxy
{
    public class OBJProxy
    {
        public OBJProxy(int objsys_idx, TDGage gage) 
        {
            TDGage mGage = gage;
            var winderSystemOBJProxy = new WinderSystem_OBJProxy(objsys_idx, gage.mData);

            var mInfoListOBJProxy = new FObjBase.Reflect.Reflect_Proxy(
                objsys_idx,
                OBJ_INTERFACE.OBJ_INTERFACE.WINDER_OBJ_INFOLIST_ID,
                typeof(IBulkDbService),
                gage.mHistoryDb.WinderInfoBuffer);

            var mWarnSystemOBJProxy = new FObjBase.Reflect.Reflect_Proxy(
                objsys_idx,
                OBJ_INTERFACE.OBJ_INTERFACE.WARNING_OBJ_ID,
                typeof(IWarningSystem2Service),
                gage.mWarning);

            var mRotarySystemOBJProxy = new FObjBase.Reflect.Reflect_Proxy(
                objsys_idx,
                OBJ_INTERFACE.OBJ_INTERFACE.RotarySerivce_OBJ_ID,
                typeof(IRotarySerivce),
                gage.rotarySystem);

            winderSystemOBJProxy.CurrObjSys.Start_Conn_Server(
                new IPEndPoint(IPAddress.Any, gage.mSysParam.OBJ_Port));

        }
    }
}