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