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.Client { public class SnapShotBufServiceClient: FObj, ISnapShotBuf { IFConn mConn; UInt32 mServerID; public SnapShotBufServiceClient() { mServerID = OBJ_INTERFACE_ID.SNAPSHOT_ID; } #region IFObj public override void ConnectNotify(IFConn from) { mConn = from; //IsConnected = from.IsConnected; if (from.IsConnected) { } } public override void PushCallFunction(IFConn from, uint srcid, uint magic, ushort funcid, byte[] retdata, object AsyncDelegate, object AsyncState) { switch (funcid) { case SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT: { if (retdata == null) { ((AsyncCBHandler)AsyncDelegate)(AsyncState, null); } else { FlyData_SnapShot p = new FlyData_SnapShot(); if (!p.TryParse(retdata)) return; ((AsyncCBHandler)AsyncDelegate)(AsyncState, p); } } break; /// /// request:null /// reponse:Pack_IntList /// case SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT_LIST: { if (retdata == null) { ((AsyncCBHandler)AsyncDelegate)(AsyncState, null); } else { SNAPSHOT_OBJ_INTERFACE.Pack_IntList p = new SNAPSHOT_OBJ_INTERFACE.Pack_IntList(); if (!p.TryParse(retdata)) return; ((AsyncCBHandler)AsyncDelegate)(AsyncState, p.list); } } break; } } #endregion #region 快照 /// /// 获取快照 返回类型为 FlyData_SnapShot /// /// 记录点 /// /// public void Get(int bookmark, AsyncCBHandler AsyncDelegate, object AsyncState) { FObjSys.Current.CallFunctionEx( mConn, mServerID, ID, SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT, new SNAPSHOT_OBJ_INTERFACE.Pack_Int() { num = bookmark }.ToBytes(), AsyncDelegate, AsyncState); } /// /// 设置快照 /// /// FlyData_SnapShot public void Set(FlyData_SnapShot f) { FObjSys.Current.CallFunctionEx( mConn, mServerID, ID, SNAPSHOT_OBJ_INTERFACE.CALL_SET_SNAPSHOT, f.ToBytes()); } /// /// 删除快照 /// /// public void Del(int bookmark) { FObjSys.Current.CallFunctionEx( mConn, mServerID, ID, SNAPSHOT_OBJ_INTERFACE.CALL_DEL_SNAPSHOT, new SNAPSHOT_OBJ_INTERFACE.Pack_Int() { num = bookmark }.ToBytes()); } /// /// 获取保存的快照列表 返回类型为 List<int> /// /// /// public void GetList(AsyncCBHandler AsyncDelegate, object AsyncState) { FObjSys.Current.CallFunctionEx( mConn, mServerID, ID, SNAPSHOT_OBJ_INTERFACE.CALL_GET_SNAPSHOT_LIST, null, AsyncDelegate, AsyncState); } #endregion } }