public static void Cancel(Link_Cfg_Param param) { if (param.ThresholdList.Count == 0) //Kill all { TimedReport tr; do { tr = TimedReport.FindTimedReport(param.Link_Param_Type.AbsoluteType, param.Timer_Interval, TimedReports); if (tr != null) { TimedReports.Remove(tr); tr.Timer.Dispose(); } } while (tr != null); Console.WriteLine("Removed a timed report."); } foreach (ActiveThreshold a in ActiveThresholds) { if (a.Param_Type == param.Link_Param_Type.AbsoluteType && param.ThresholdList.Contains(a.Threshold)) { ActiveThresholds.Remove(a); } } }
/// <summary> /// This method handles a Link_Cfg_Param related with the DataRate analisis. /// </summary> /// <param name="linkCfgParam">The Link_Cfg_Param</param> private void subscribeLinkParamGen_DataRate(Link_Cfg_Param linkCfgParam) { List <LinkParamGenDataRateEventWatcher> thList = new List <LinkParamGenDataRateEventWatcher>(); foreach (Threshold th in linkCfgParam.ThresholdList) { LinkParamGenDataRateEventWatcher lpgdre = new LinkParamGenDataRateEventWatcher(th); lpgdre.Start(); thList.Add(lpgdre); } }
/// <summary> /// This method is reponsible for handling and registering a Link_Cfg_Param. /// </summary> /// <param name="linkCfgParam">The Link_Cfg_Param.</param> public void HandleOneShotParamConf(Link_Cfg_Param linkCfgParam) { switch (linkCfgParam.Link_Param_Type.Type) { case Link_Param_Types.LINK_PARAM_GEN: { HandleLinkParamGenType(linkCfgParam); break; } case Link_Param_Types.LINK_PARAM_802_11: { break; } } }
public bool RegisterLinkCfgParam(Link_Cfg_Param linkCfgParam) { Timer timer = new Timer(FindParamCallback(linkCfgParam), null, linkCfgParam.Timer_Interval, linkCfgParam.Timer_Interval); if (linkCfgParam.Th_Action == TH_Action.CANCEL_THRESHOLD) { CancelThreshold(linkCfgParam); return(true); } configuredPeriodicReports.Add(new KeyValuePair <Link_Cfg_Param, Timer>(linkCfgParam, timer)); return(true); }
/// <summary> /// This is a "submethod" that handles the Link_Cfg_Param of Generic Type in particular. /// </summary> /// <param name="linkCfgParam">The Link_Cfg_Param.</param> private void HandleLinkParamGenType(Link_Cfg_Param linkCfgParam) { switch (linkCfgParam.Link_Param_Type.SubType) { case (int)LINK_PARAM_GEN_SUBTYPES.DataRate: { subscribeLinkParamGen_DataRate(linkCfgParam); break; } case (int)LINK_PARAM_GEN_SUBTYPES.PacketErrorRate: { break; } case (int)LINK_PARAM_GEN_SUBTYPES.SINR: { break; } case (int)LINK_PARAM_GEN_SUBTYPES.Throughtput: { break; } } }
private TimerCallback FindParamCallback(Link_Cfg_Param linkCfgParam) { switch (linkCfgParam.Link_Param_Type.Type) { case Link_Param_Types.LINK_PARAM_GEN: { return(LinkParamGenTimerCallBacks.LinkParamGenSubTypeTimerCallBack(linkCfgParam.Link_Param_Type.SubType)); } case Link_Param_Types.LINK_PARAM_802_11: { return(LinkParam80211TimerCallBacks.linkParam80211SubTypeTimerCallBack(linkCfgParam.Link_Param_Type.SubType)); } default: return(null); } }
private void CancelThreshold(Link_Cfg_Param linkCfgParam) { // TODO optimizar condições de verificação. i.e. verificar o tipo de linkcfgparam. configuredPeriodicReports.Where(t => t.Key.Link_Param_Type == linkCfgParam.Link_Param_Type && t.Key.Link_Param_Type.SubType == linkCfgParam.Link_Param_Type.SubType).Single().Value.Change(Timeout.Infinite, Timeout.Infinite); }
public void HandlePeriodicParameterConfig(Link_Cfg_Param linkCfgParam) { throw new System.NotImplementedException(); }