public static T Prepare <T>(this T input, PingEngineFlags flags) where T : PingBase { input.MeasureTime = flags.HasFlag(PingEngineFlags.MeasureTime); if (flags.HasFlag(PingEngineFlags.Subnet)) { input.Enqueue(NetMaskHelper.RetrieveSubnetAddresses()); } return(input); }
/// <summary> /// Returns Ping discovery engine based on the current users' permissons /// </summary> /// <returns></returns> public static PingBase CreatePingEngine(PingEngineFlags flags = PingEngineFlags.Default) { return((WindowsUser.IsElevated ? new RawPing() : (PingBase) new ApiPing()).Prepare(flags)); }