1 // 2 // Copyright (c) 2010-2018 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 using System; 8 9 namespace Antmicro.Renode.Peripherals.Wireless 10 { 11 public static class SimpleMediumExtension 12 { SetSimpleWirelessFunction(this WirelessMedium wirelessMedium)13 public static void SetSimpleWirelessFunction(this WirelessMedium wirelessMedium) 14 { 15 wirelessMedium.SetMediumFunction(SimpleMediumFunction.Instance); 16 } 17 } 18 19 public sealed class SimpleMediumFunction : IMediumFunction 20 { 21 public static SimpleMediumFunction Instance { get; private set; } 22 SimpleMediumFunction()23 static SimpleMediumFunction() 24 { 25 Instance = new SimpleMediumFunction(); 26 } 27 SimpleMediumFunction()28 private SimpleMediumFunction() 29 { 30 } 31 CanReach(Position from, Position to)32 public bool CanReach(Position from, Position to) 33 { 34 // always can reach destination - that's why we call it `simple` 35 return true; 36 } 37 CanTransmit(Position from)38 public bool CanTransmit(Position from) 39 { 40 // always can transmit - that's why we call it `simple` 41 return true; 42 } 43 44 public string FunctionName { get { return Name; } } 45 46 private const string Name = "simple_medium_function"; 47 } 48 } 49