/// <summary> /// get position /// </summary> /// <param name="record"></param> /// <returns></returns> internal DbPos GetPosition(IRecord record) { DbPos pos = null; PositionId positionId = GetPositionId(record); PositionCache.TryGetValue(positionId, out pos); return(pos); }
/// <summary> /// clear record from position cache /// </summary> /// <param name="record"></param> internal void ClearRecord(IRecord record) { if (!IgnorePositionCache) { PositionId positionId = GetPositionId(record); PositionCache.Remove(positionId); } }
/// <summary> /// get current position /// </summary> /// <returns></returns> internal DbPos GetCurrentPosition() { DbPos pos = null; IRecord currRec = ((DataView)LocalDataviewManager.Task.DataView).getCurrRec(); PositionId positionId = GetPositionId(currRec); PositionCache.TryGetValue(positionId, out pos); return(pos); }
/// <summary> /// get position id /// </summary> /// <param name="record"></param> /// <returns></returns> protected PositionId GetPositionId(IRecord record) { PositionId positionId = new PositionId(record.getId(), ((IDataviewHeader)DataSourceViewDefinition).Id); return(positionId); }
/// <summary> /// remove position value /// </summary> /// <param name="clientId"></param> /// <param name="position"></param> internal void Remove(PositionId positionId) { positions.Remove(positionId); }
/// <summary> /// Adds position value /// </summary> /// <param name="clientId"></param> /// <param name="position"></param> internal void Set(PositionId positionId, DbPos position) { positions[positionId] = position.Clone(); }
/// <summary> /// get position value /// </summary> /// <param name="positionId"></param> /// <param name="position"></param> /// <returns></returns> internal bool TryGetValue(PositionId positionId, out DbPos position) { return(positions.TryGetValue(positionId, out position)); }