add some convenience functions to InstanceReference

This commit is contained in:
Michael Becker 2025-09-30 08:39:23 -04:00
parent aafd99ab94
commit 0c7abc9a13

View File

@ -15,12 +15,31 @@
// You should have received a copy of the GNU General Public License
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
using Mocha.Core;
public class InstanceReference
{
public static IEnumerable<InstanceHandle> GetHandles(IEnumerable<InstanceReference> irs, Oms oms)
{
foreach (InstanceReference ir in irs)
{
yield return ir.GetHandle(oms);
}
}
public InstanceReference(InstanceKey instanceKey)
{
InstanceKey = instanceKey;
}
public InstanceReference(InstanceKey instanceKey, Guid globalIdentifier)
{
InstanceKey = instanceKey;
GlobalIdentifier = globalIdentifier;
}
public InstanceReference(Guid globalIdentifier)
{
GlobalIdentifier = globalIdentifier;
}
public InstanceKey InstanceKey { get; }
public Guid GlobalIdentifier { get; }
public static bool operator==(InstanceReference left, InstanceReference right)
@ -44,4 +63,13 @@ public class InstanceReference
{
return GlobalIdentifier.GetHashCode();
}
public InstanceHandle GetHandle(Oms oms)
{
if (GlobalIdentifier == Guid.Empty)
{
return oms.GetInstance(InstanceKey);
}
return oms.GetInstance(GlobalIdentifier);
}
}