using FLY.FeedbackRenZiJia.Common; using FLY.FeedbackRenZiJia.IService; using FLY.FeedbackRenZiJia.OBJ_INTERFACE; using FObjBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FLY.FeedbackRenZiJia.Server.OBJProxy { public class SnapShotBuf_OBJProxy : FObj { #region markno #endregion ISnapShotBuf data; public SnapShotBuf_OBJProxy(int objsys_idx, ISnapShotBuf data):base(objsys_idx) { ID = OBJ_INTERFACE_ID.SNAPSHOT_ID; this.data = data; } public override void CallFunction(IFConn from, uint srcid, uint magic, ushort funcid, byte[] infodata) { switch (funcid) { case SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT: { SNAPSHOT_OBJ_INTERFACE.Pack_Int p = new SNAPSHOT_OBJ_INTERFACE.Pack_Int(); if (!p.TryParse(infodata)) return; data.Get(p.num, new AsyncCBHandler(delegate (object AsyncState, object retdata) { ConnContext context = (ConnContext)AsyncState; FlyData_SnapShot p1 = (FlyData_SnapShot)retdata; CurrObjSys.PushCallFunctionEx( context.from, context.srcid, ID, context.magic, SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT, (p1 == null) ? null : p1.ToBytes()); }), new ConnContext(from, srcid, magic)); } break; case SNAPSHOT_OBJ_INTERFACE.CALL_SET_SNAPSHOT: { FlyData_SnapShot p = new FlyData_SnapShot(); if (!p.TryParse(infodata)) return; data.Set(p); } break; case SNAPSHOT_OBJ_INTERFACE.CALL_DEL_SNAPSHOT: { SNAPSHOT_OBJ_INTERFACE.Pack_Int p = new SNAPSHOT_OBJ_INTERFACE.Pack_Int(); if (!p.TryParse(infodata)) return; data.Del(p.num); } break; case SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT_LIST: { data.GetList( new AsyncCBHandler(delegate (object AsyncState, object retdata) { ConnContext context = (ConnContext)AsyncState; SNAPSHOT_OBJ_INTERFACE.Pack_IntList p = new SNAPSHOT_OBJ_INTERFACE.Pack_IntList(); p.list = (List<int>)retdata; CurrObjSys.PushCallFunctionEx( context.from, context.srcid, ID, context.magic, SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT_LIST, p.ToBytes()); }), new ConnContext(from, srcid, magic)); } break; } } } }