Skip to content

Commit

Permalink
Refactoring to allow removing of HierarchicalLifetimeStrategy
Browse files Browse the repository at this point in the history
  • Loading branch information
ENikS committed Nov 12, 2017
1 parent 6b839e5 commit 7372f0a
Show file tree
Hide file tree
Showing 5 changed files with 73 additions and 2 deletions.
2 changes: 1 addition & 1 deletion package.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>

<PropertyGroup>
<Version>2.1.2</Version>
<Version>2.2.0</Version>
<PackageReleaseNotes>This package is distributed as .NET Standard 1.0, 2.0, .Net Core 1.0 and .NET 4.0, 4.5, 4.7</PackageReleaseNotes>
</PropertyGroup>

Expand Down
6 changes: 6 additions & 0 deletions src/Lifetime/HierarchicalLifetimeManager.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.

using System;
using Unity.Policy;

namespace Unity.Lifetime
{
Expand All @@ -22,6 +23,11 @@ public override void RemoveValue()
Dispose();
}

public IBuilderPolicy CreateScope()
{
return new HierarchicalLifetimeManager();
}


#region IDisposable

Expand Down
9 changes: 8 additions & 1 deletion src/Lifetime/IHierarchicalLifetimePolicy.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
namespace Unity.Lifetime
using Unity.Policy;

namespace Unity.Lifetime
{
public interface IHierarchicalLifetimePolicy : ILifetimePolicy
{
/// <summary>
/// Creates controller for current scope
/// </summary>
/// <returns>IScopeLifetimePolicy</returns>
IBuilderPolicy CreateScope();
}
}
9 changes: 9 additions & 0 deletions src/Registration/IIndexerOf.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

namespace Unity.Registration
{
public interface IIndexerOf<TKey, TValue>
{
TValue this[TKey index] { get; set; }
}

}
49 changes: 49 additions & 0 deletions src/Utility/Prime.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
using System;

namespace Unity.Utility
{
public static class Prime
{
public static readonly int[] Numbers = {
1, 3, 7, 11, 17, 23, 29, 37, 47, 59, 71, 89, 107, 131, 163, 197, 239, 293,
353, 431, 521, 631, 761, 919, 1103, 1327, 1597, 1931, 2333, 2801, 3371, 4049,
4861, 5839, 7013, 8419, 10103, 12143, 14591, 17519, 21023, 25229, 30293, 36353,
43627, 52361, 62851, 75431, 90523, 108631, 130363, 156437, 187751, 225307, 270371,
324449, 389357, 467237, 560689, 672827, 807403, 968897, 1162687, 1395263, 1674319,
2009191, 2411033, 2893249, 3471899, 4166287, 4999559, 5999471, 7199369, 10000019};


public static int GetPrime(int min)
{
if (min < 0) throw new ArgumentException("Capacity Overflow");

foreach (var prime in Numbers)
{
if (prime >= min) return prime;
}

for (var i = min | 1; i < Int32.MaxValue; i += 2)
{
if (IsPrime(i) && (i - 1) % 101 != 0)
return i;
}

return min;
}

public static bool IsPrime(int candidate)
{
if ((candidate & 1) != 0)
{
var limit = (int)Math.Sqrt(candidate);
for (var divisor = 3; divisor <= limit; divisor += 2)
{
if (candidate % divisor == 0)
return false;
}
return true;
}
return candidate == 2;
}
}
}

0 comments on commit 7372f0a

Please sign in to comment.