├── VERSION
├── .nuget
├── NuGet.exe
└── NuGet.Config
├── tools
└── nunit
│ ├── nunit.exe
│ ├── nunit-x86.exe
│ ├── lib
│ ├── log4net.dll
│ ├── nunit.core.dll
│ ├── nunit.util.dll
│ ├── Images
│ │ ├── pinned.gif
│ │ ├── Ellipsis.gif
│ │ ├── unpinned.gif
│ │ └── Tree
│ │ │ ├── Circles
│ │ │ ├── Failure.jpg
│ │ │ ├── Ignored.jpg
│ │ │ ├── Skipped.jpg
│ │ │ ├── Success.jpg
│ │ │ └── Inconclusive.jpg
│ │ │ ├── Classic
│ │ │ ├── Failure.jpg
│ │ │ ├── Ignored.jpg
│ │ │ ├── Skipped.jpg
│ │ │ ├── Success.jpg
│ │ │ └── Inconclusive.jpg
│ │ │ ├── Default
│ │ │ ├── Failure.png
│ │ │ ├── Ignored.png
│ │ │ ├── Skipped.png
│ │ │ ├── Success.png
│ │ │ └── Inconclusive.png
│ │ │ └── Visual Studio
│ │ │ ├── Failure.png
│ │ │ ├── Ignored.png
│ │ │ ├── Skipped.png
│ │ │ ├── Success.png
│ │ │ ├── Inconclusive.png
│ │ │ └── SeriousWarning.png
│ ├── NSubstitute.dll
│ ├── Rhino.Mocks.dll
│ ├── nunit.uikit.dll
│ ├── nunit-gui-runner.dll
│ ├── nunit.uiexception.dll
│ ├── nunit-console-runner.dll
│ └── nunit.core.interfaces.dll
│ ├── nunit-agent.exe
│ ├── nunit-editor.exe
│ ├── pnunit-agent.exe
│ ├── pnunit.tests.dll
│ ├── nunit-console.exe
│ ├── nunit-agent-x86.exe
│ ├── nunit-console-x86.exe
│ ├── nunit.framework.dll
│ ├── pnunit-launcher.exe
│ ├── pnunit.framework.dll
│ ├── runpnunit.bat
│ ├── agent.conf
│ ├── tests
│ ├── mock-assembly.dll
│ ├── test-assembly.dll
│ ├── nunit-gui.tests.dll
│ ├── nunit.core.tests.dll
│ ├── nunit.framework.dll
│ ├── nunit.util.tests.dll
│ ├── test-utilities.dll
│ ├── nunit-editor.tests.dll
│ ├── nunit.mocks.tests.dll
│ ├── nunit.uikit.tests.dll
│ ├── nonamespace-assembly.dll
│ ├── nunit-console.tests.dll
│ ├── nunit.framework.tests.dll
│ └── nunit.uiexception.tests.dll
│ ├── framework
│ ├── nunit.mocks.dll
│ ├── nunit.framework.dll
│ └── pnunit.framework.dll
│ ├── agent.log.conf
│ ├── launcher.log.conf
│ ├── NUnitTests.nunit
│ ├── nunit.exe.config
│ ├── nunit-x86.exe.config
│ ├── nunit-console.exe.config
│ ├── nunit-console-x86.exe.config
│ ├── nunit-agent.exe.config
│ └── nunit-agent-x86.exe.config
├── benchmark
├── Helios.Tests.Performance
│ ├── packages.config
│ ├── Socket
│ │ ├── TcpThroughputSpec.cs
│ │ └── UdpThroughputSpec.cs
│ ├── Channels
│ │ ├── CounterHandlerInbound.cs
│ │ ├── CounterHandlerOutbound.cs
│ │ ├── ReadFinishedHandler.cs
│ │ └── IReadFinishedSignal.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Helios.HorizontalScaling.Performance
│ ├── packages.config
│ └── Channels
│ │ └── ErrorCounterHandler.cs
├── Helios.Benchmark.TCPThroughput
│ ├── App.config
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Helios.Benchmark.DedicatedThreadFiber
│ └── App.config
└── Helios.Benchmark.SocketReliability
│ ├── App.config
│ └── Properties
│ └── AssemblyInfo.cs
├── samples
├── Helios.RawSocket
│ ├── App.config
│ ├── Properties
│ │ ├── Settings.settings
│ │ ├── Settings.Designer.cs
│ │ └── AssemblyInfo.cs
│ └── Program.cs
├── Helios.RawUdpSocket
│ ├── App.config
│ ├── Properties
│ │ ├── Settings.settings
│ │ ├── Settings.Designer.cs
│ │ └── AssemblyInfo.cs
│ └── Program.cs
├── TimeService
│ ├── TimeServiceClient
│ │ ├── App.config
│ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ └── TimeServiceServer
│ │ ├── App.config
│ │ └── Properties
│ │ └── AssemblyInfo.cs
├── Helios.Samples.TcpDownloadServer
│ ├── App.config
│ ├── Program.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Helios.Samples.TcpReactorServer
│ └── App.config
├── Helios.Samples.UdpPerformanceTest
│ └── App.config
└── Helios.Samples.UdpReactorServer
│ └── App.config
├── src
├── SharedAssemblyInfo.cs
└── Helios
│ ├── Channels
│ ├── IChannelId.cs
│ ├── ConnectionPendingException.cs
│ ├── AlreadyConnectedException.cs
│ ├── SkipAttribute.cs
│ ├── Sockets
│ │ ├── IServerSocketChannelConfiguration.cs
│ │ ├── IServerSocketChannel.cs
│ │ ├── ISocketChannel.cs
│ │ ├── ISocketChannelConfiguration.cs
│ │ └── SocketChannelAsyncOperation.cs
│ ├── ConnectException.cs
│ ├── Embedded
│ │ ├── EmbeddedSocketAddress.cs
│ │ └── EmbeddedChannelId.cs
│ ├── IEventLoopGroup.cs
│ ├── IServerChannel.cs
│ ├── ClosedChannelException.cs
│ ├── NotYetConnectedException.cs
│ ├── ConnectTimeoutException.cs
│ ├── Bootstrap
│ │ ├── INameResolver.cs
│ │ └── DefaultNameResolver.cs
│ ├── ChannelException.cs
│ ├── IRecvByteBufAllocator.cs
│ ├── ChannelPipelineException.cs
│ ├── DefaultChannelHandlerContext.cs
│ ├── ActionChannelInitializer.cs
│ ├── IMessageSizeEstimator.cs
│ ├── IChannelUnsafe.cs
│ ├── IChannelConfiguration.cs
│ ├── IRecvByteBufferAllocatorHandle.cs
│ ├── DefaultChannelId.cs
│ ├── SingleThreadEventLoop.cs
│ ├── DefaultConnectionConfig.cs
│ ├── IChannel.cs
│ └── FixedRecvByteBufAllocator.cs
│ ├── Concurrency
│ ├── IScheduledRunnable.cs
│ ├── FiberMode.cs
│ ├── IEventLoop.cs
│ ├── IRunnable.cs
│ ├── IScheduledTask.cs
│ ├── RejectedTaskException.cs
│ ├── ActionScheduledTask.cs
│ ├── ActionWithStateScheduledTask.cs
│ ├── ActionScheduledAsyncTask.cs
│ ├── IPausableEventExecutor.cs
│ ├── ActionWithStateScheduledAsyncTask.cs
│ ├── ActionWithStateAndContextScheduledTask.cs
│ ├── ActionWithStateAndContextScheduledAsyncTask.cs
│ ├── PromiseUtil.cs
│ ├── ScheduledAsyncTask.cs
│ └── TaskCompletionSource.cs
│ ├── Exceptions
│ ├── ExceptionType.cs
│ ├── Events
│ │ ├── ExceptionEventArgs.cs
│ │ └── ExceptionTopicSubscription.cs
│ ├── HeliosConnectionException.cs
│ └── HeliosNodeException.cs
│ ├── Serialization
│ ├── ByteOrder.cs
│ ├── ITransportSerializer.cs
│ └── Encoders.cs
│ ├── Buffers
│ ├── ByteOrder.cs
│ ├── IByteBufAllocator.cs
│ ├── UnpooledByteBufAllocator.cs
│ └── Unpooled.cs
│ ├── HeliosException.cs
│ ├── Net
│ ├── IConnectionBuilder.cs
│ ├── NetworkDataExtensions.cs
│ ├── Bootstrap
│ │ ├── IConnectionFactory.cs
│ │ ├── TcpConnectionFactory.cs
│ │ └── UdpConnectionFactory.cs
│ ├── IConnectionExtensions.cs
│ ├── MulticastHelper.cs
│ └── Transports
│ │ └── ITransport.cs
│ ├── Eventing
│ ├── ITopicSubscription.cs
│ ├── Subscriptions
│ │ ├── TopicHelpers.cs
│ │ └── NormalTopicSubscription.cs
│ ├── EventSubscriptionEventArgs.cs
│ └── IEventBroker.cs
│ ├── Logging
│ ├── StandardOutLoggerFactory.cs
│ ├── NoOpLoggerFactory.cs
│ ├── LogLevel.cs
│ └── NoOpLogger.cs
│ ├── Ops
│ ├── IEventLoop.cs
│ ├── EventLoopFactory.cs
│ ├── Executors
│ │ └── ThreadedEventLoop.cs
│ ├── OperationResult.cs
│ └── IOperationResult.cs
│ ├── Helios.nuspec
│ ├── Reactor
│ ├── Bootstrap
│ │ ├── IServerFactory.cs
│ │ ├── UdpServerFactory.cs
│ │ └── TcpServerFactory.cs
│ └── Response
│ │ └── ReactorProxyResponseChannel.cs
│ ├── Util
│ ├── BitOps.cs
│ ├── Collections
│ │ ├── DictionaryExtensions.cs
│ │ ├── CollectionExtensions.cs
│ │ └── IFixedSizeStack.cs
│ ├── ThreadLocalRandom.cs
│ ├── RecyclableArrayList.cs
│ ├── FlagsHelper.cs
│ ├── IpHelper.cs
│ └── NullGuard.cs
│ ├── Topology
│ ├── EmptyNode.cs
│ ├── NodeExtensions.cs
│ └── INode.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ └── Tracing
│ └── HeliosTrace.cs
├── tests
├── Helios.Tests
│ ├── Concurrency
│ │ └── EventLoopGroupSpecs.cs
│ ├── packages.config
│ ├── Util
│ │ ├── Collections
│ │ │ ├── ConcurrentCircularBufferTests.cs
│ │ │ └── CircularBufferTests.cs
│ │ └── TimedOps
│ │ │ └── PreciseDeadlineSpecs.cs
│ ├── Buffer
│ │ ├── BasicByteBufTests.cs
│ │ └── ByteBufferDerivationSpecs.cs
│ ├── Channels
│ │ ├── Bootstrap
│ │ │ ├── BootstrapSpecs.cs
│ │ │ └── TcpBootstrapSpec.cs
│ │ ├── ReadCountAwaiter.cs
│ │ └── IntCodec.cs
│ ├── Codecs
│ │ └── MessageToMessageEncoderSpecs.cs
│ ├── Net
│ │ ├── MulticastHelperTests.cs
│ │ └── NodeUniquenessTests.cs
│ ├── Topology
│ │ └── NodeTests.cs
│ ├── Ops
│ │ └── NetworkEventLoopTests.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Helios.FsCheck.Tests
│ ├── app.config
│ ├── Channels
│ │ ├── Sockets
│ │ │ ├── Models
│ │ │ │ ├── ConnectionState.cs
│ │ │ │ └── ITcpServerSocketModel.cs
│ │ │ └── TcpSocketServerSpecs.cs
│ │ └── TestChannel.cs
│ ├── HeliosModelHelpers.cs
│ ├── Buffers
│ │ └── BufferHelpers.cs
│ ├── packages.config
│ ├── HeliosGenerators.cs
│ ├── FsharpDelegateHelper.cs
│ ├── TestLogger.cs
│ └── Properties
│ │ └── AssemblyInfo.cs
├── Helios.BackwardsCompat.Tests
│ ├── packages.config
│ └── Properties
│ │ └── AssemblyInfo.cs
└── Helios.MultiNodeTests
│ ├── packages.config
│ └── Properties
│ └── AssemblyInfo.cs
└── .gitignore
/VERSION:
--------------------------------------------------------------------------------
1 | 1.3.5.0
--------------------------------------------------------------------------------
/.nuget/NuGet.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/.nuget/NuGet.exe
--------------------------------------------------------------------------------
/tools/nunit/nunit.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit.exe
--------------------------------------------------------------------------------
/tools/nunit/nunit-x86.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit-x86.exe
--------------------------------------------------------------------------------
/tools/nunit/lib/log4net.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/log4net.dll
--------------------------------------------------------------------------------
/tools/nunit/nunit-agent.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit-agent.exe
--------------------------------------------------------------------------------
/tools/nunit/nunit-editor.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit-editor.exe
--------------------------------------------------------------------------------
/tools/nunit/pnunit-agent.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/pnunit-agent.exe
--------------------------------------------------------------------------------
/tools/nunit/pnunit.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/pnunit.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/nunit.core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/nunit.core.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/nunit.util.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/nunit.util.dll
--------------------------------------------------------------------------------
/tools/nunit/nunit-console.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit-console.exe
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/pinned.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/pinned.gif
--------------------------------------------------------------------------------
/tools/nunit/lib/NSubstitute.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/NSubstitute.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/Rhino.Mocks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Rhino.Mocks.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/nunit.uikit.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/nunit.uikit.dll
--------------------------------------------------------------------------------
/tools/nunit/nunit-agent-x86.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit-agent-x86.exe
--------------------------------------------------------------------------------
/tools/nunit/nunit-console-x86.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit-console-x86.exe
--------------------------------------------------------------------------------
/tools/nunit/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/nunit.framework.dll
--------------------------------------------------------------------------------
/tools/nunit/pnunit-launcher.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/pnunit-launcher.exe
--------------------------------------------------------------------------------
/tools/nunit/pnunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/pnunit.framework.dll
--------------------------------------------------------------------------------
/tools/nunit/runpnunit.bat:
--------------------------------------------------------------------------------
1 | start pnunit-agent 8080 .
2 | start pnunit-agent 8081 .
3 | pnunit-launcher test.conf
4 |
--------------------------------------------------------------------------------
/tools/nunit/agent.conf:
--------------------------------------------------------------------------------
1 |
2 | 8080
3 | .
4 |
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Ellipsis.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Ellipsis.gif
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/unpinned.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/unpinned.gif
--------------------------------------------------------------------------------
/tools/nunit/tests/mock-assembly.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/mock-assembly.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/test-assembly.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/test-assembly.dll
--------------------------------------------------------------------------------
/tools/nunit/framework/nunit.mocks.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/framework/nunit.mocks.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/nunit-gui-runner.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/nunit-gui-runner.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/nunit.uiexception.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/nunit.uiexception.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit-gui.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit-gui.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit.core.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit.core.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit.framework.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit.util.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit.util.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/test-utilities.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/test-utilities.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/nunit-console-runner.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/nunit-console-runner.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit-editor.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit-editor.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit.mocks.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit.mocks.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit.uikit.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit.uikit.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/framework/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/framework/nunit.framework.dll
--------------------------------------------------------------------------------
/tools/nunit/framework/pnunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/framework/pnunit.framework.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/nunit.core.interfaces.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/nunit.core.interfaces.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nonamespace-assembly.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nonamespace-assembly.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit-console.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit-console.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit.framework.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit.framework.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/tests/nunit.uiexception.tests.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/tests/nunit.uiexception.tests.dll
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Circles/Failure.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Circles/Failure.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Circles/Ignored.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Circles/Ignored.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Circles/Skipped.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Circles/Skipped.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Circles/Success.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Circles/Success.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Classic/Failure.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Classic/Failure.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Classic/Ignored.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Classic/Ignored.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Classic/Skipped.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Classic/Skipped.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Classic/Success.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Classic/Success.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Default/Failure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Default/Failure.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Default/Ignored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Default/Ignored.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Default/Skipped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Default/Skipped.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Default/Success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Default/Success.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Circles/Inconclusive.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Circles/Inconclusive.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Classic/Inconclusive.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Classic/Inconclusive.jpg
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Default/Inconclusive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Default/Inconclusive.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Visual Studio/Failure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Visual Studio/Failure.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Visual Studio/Ignored.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Visual Studio/Ignored.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Visual Studio/Skipped.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Visual Studio/Skipped.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Visual Studio/Success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Visual Studio/Success.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Visual Studio/Inconclusive.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Visual Studio/Inconclusive.png
--------------------------------------------------------------------------------
/tools/nunit/lib/Images/Tree/Visual Studio/SeriousWarning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/helios-io/helios/HEAD/tools/nunit/lib/Images/Tree/Visual Studio/SeriousWarning.png
--------------------------------------------------------------------------------
/benchmark/Helios.Tests.Performance/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/benchmark/Helios.HorizontalScaling.Performance/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/samples/Helios.RawSocket/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/Helios.RawUdpSocket/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/TimeService/TimeServiceClient/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/TimeService/TimeServiceServer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/benchmark/Helios.Benchmark.TCPThroughput/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/Helios.Samples.TcpDownloadServer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/Helios.Samples.TcpReactorServer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/Helios.Samples.UdpPerformanceTest/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/Helios.Samples.UdpReactorServer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/benchmark/Helios.Benchmark.DedicatedThreadFiber/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/benchmark/Helios.Benchmark.SocketReliability/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/samples/Helios.RawSocket/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/samples/Helios.RawUdpSocket/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.nuget/NuGet.Config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/SharedAssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | //
2 | using System.Reflection;
3 |
4 | [assembly: AssemblyCompanyAttribute("Helios Framework")]
5 | [assembly: AssemblyCopyrightAttribute("Copyright © Aaron Stannard 2013-2015")]
6 | [assembly: AssemblyVersionAttribute("2.1.2")]
7 | [assembly: AssemblyFileVersionAttribute("2.1.2")]
8 |
--------------------------------------------------------------------------------
/tests/Helios.Tests/Concurrency/EventLoopGroupSpecs.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Tests.Concurrency
6 | {
7 | public class EventLoopGroupSpecs
8 | {
9 | }
10 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/IChannelId.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Channels
8 | {
9 | public interface IChannelId : IComparable
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/ConnectionPendingException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Channels
8 | {
9 | public class ConnectionPendingException : Exception
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/AlreadyConnectedException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.IO;
6 |
7 | namespace Helios.Channels
8 | {
9 | public class AlreadyConnectedException : IOException
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/tests/Helios.FsCheck.Tests/app.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/Helios/Channels/SkipAttribute.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Channels
8 | {
9 | [AttributeUsage(AttributeTargets.Method)]
10 | public class SkipAttribute : Attribute
11 | {
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Helios/Concurrency/IScheduledRunnable.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Concurrency
8 | {
9 | public interface IScheduledRunnable : IRunnable, IScheduledTask, IComparable
10 | {
11 | }
12 | }
--------------------------------------------------------------------------------
/samples/Helios.Samples.TcpDownloadServer/Program.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Samples.TcpDownloadServer
6 | {
7 | internal class Program
8 | {
9 | private static void Main(string[] args)
10 | {
11 | }
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Helios/Concurrency/FiberMode.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Concurrency
6 | {
7 | public enum FiberMode
8 | {
9 | Synchronous,
10 | MultiThreaded,
11 | SingleThreaded,
12 | MaximumConcurrency
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/Sockets/IServerSocketChannelConfiguration.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Channels.Sockets
6 | {
7 | public interface IServerSocketChannelConfiguration : IChannelConfiguration
8 | {
9 | int Backlog { get; set; }
10 | }
11 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/Sockets/IServerSocketChannel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Channels.Sockets
6 | {
7 | public interface IServerSocketChannel : IServerChannel
8 | {
9 | new IServerSocketChannelConfiguration Configuration { get; }
10 | }
11 | }
--------------------------------------------------------------------------------
/tests/Helios.FsCheck.Tests/Channels/Sockets/Models/ConnectionState.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.FsCheck.Tests.Channels.Sockets.Models
6 | {
7 | public enum ConnectionState
8 | {
9 | Connecting = 1 << 1,
10 | Active = 1 << 2,
11 | Shutdown = 1 << 3
12 | }
13 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/ConnectException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Channels
8 | {
9 | public class ConnectException : Exception
10 | {
11 | public ConnectException(string s, Exception exception) : base(s, exception)
12 | {
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Helios/Exceptions/ExceptionType.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Exceptions
6 | {
7 | public enum ExceptionType
8 | {
9 | Unknown,
10 | NotOpen,
11 | AlreadyOpen,
12 | TimedOut,
13 | EndOfFile,
14 | NotSupported,
15 | Closed
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Helios/Serialization/ByteOrder.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Serialization
6 | {
7 | public enum ByteOrder
8 | {
9 | ///
10 | /// Default on most Windows systems
11 | ///
12 | LittleEndian = 0,
13 | BigEndian = 1
14 | }
15 | }
--------------------------------------------------------------------------------
/tools/nunit/agent.log.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/tools/nunit/launcher.log.conf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/Helios/Channels/Embedded/EmbeddedSocketAddress.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Net;
6 |
7 | namespace Helios.Channels.Embedded
8 | {
9 | internal sealed class EmbeddedSocketAddress : EndPoint
10 | {
11 | public override string ToString()
12 | {
13 | return "embedded";
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/tests/Helios.BackwardsCompat.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/Helios/Buffers/ByteOrder.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Buffers
6 | {
7 | public enum ByteOrder
8 | {
9 | ///
10 | /// Default on all X86 systems; backgwards compatible with previous Helios defaults.
11 | ///
12 | LittleEndian = 0,
13 | BigEndian = 1
14 | }
15 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Build output
2 | build*/
3 |
4 | # FAKE output
5 | .fake/
6 |
7 | #Ruby
8 | Gemfile.lock
9 |
10 | #nuget packages
11 | packages*/
12 |
13 | #ignore thumbnails created by windows
14 | Thumbs.db
15 | #Ignore files build by Visual Studio
16 | *.obj
17 | *.exe
18 | *.pdb
19 | *.user
20 | *.aps
21 | *.pch
22 | *.vspscc
23 | *_i.c
24 | *_p.c
25 | *.ncb
26 | *.suo
27 | *.tlb
28 | *.tlh
29 | *.bak
30 | *.cache
31 | *.ilk
32 | *.log
33 | [Bb]in
34 | [Dd]ebug*/
35 | *.lib
36 | *.sbr
37 | obj/
38 | [Rr]elease*/
39 | _ReSharper*/
40 | [Pp]erf[Rr]esult*
41 | [Tt]est[Rr]esult*
42 |
43 | # Mono
44 | *.userprefs
--------------------------------------------------------------------------------
/src/Helios/Channels/IEventLoopGroup.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Threading.Tasks;
6 | using Helios.Concurrency;
7 |
8 | namespace Helios.Channels
9 | {
10 | public interface IEventLoopGroup
11 | {
12 | Task TerminationCompletion { get; }
13 |
14 | IEventLoop GetNext();
15 |
16 | Task ShutdownGracefullyAsync();
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/IServerChannel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Channels
6 | {
7 | ///
8 | /// Marker interface for implementations which act as inbound
9 | /// receivers for connections from external clients.
10 | ///
11 | public interface IServerChannel : IChannel
12 | {
13 | }
14 | }
--------------------------------------------------------------------------------
/src/Helios/HeliosException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios
8 | {
9 | public class HeliosException : Exception
10 | {
11 | public HeliosException()
12 | {
13 | }
14 |
15 | public HeliosException(string message, Exception inner = null) : base(message, inner)
16 | {
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/benchmark/Helios.Tests.Performance/Socket/TcpThroughputSpec.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Net;
6 |
7 | namespace Helios.Tests.Performance.Socket
8 | {
9 | public class TcpThroughputSpec : SocketThroughputSpec
10 | {
11 | public override TransportType TransportType
12 | {
13 | get { return TransportType.Tcp; }
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/benchmark/Helios.Tests.Performance/Socket/UdpThroughputSpec.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Net;
6 |
7 | namespace Helios.Tests.Performance.Socket
8 | {
9 | public class UdpThroughputSpec : SocketThroughputSpec
10 | {
11 | public override TransportType TransportType
12 | {
13 | get { return TransportType.Tcp; }
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/ClosedChannelException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.IO;
6 |
7 | namespace Helios.Channels
8 | {
9 | public class ClosedChannelException : IOException
10 | {
11 | public static readonly ClosedChannelException Instance = new ClosedChannelException();
12 |
13 | private ClosedChannelException()
14 | {
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Helios/Concurrency/IEventLoop.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Threading.Tasks;
6 | using Helios.Channels;
7 |
8 | namespace Helios.Concurrency
9 | {
10 | public interface IEventLoop : IEventExecutor
11 | {
12 | IChannelHandlerInvoker Invoker { get; }
13 |
14 | Task RegisterAsync(IChannel channel);
15 |
16 | new IEventLoop Unwrap();
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/NotYetConnectedException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.IO;
6 |
7 | namespace Helios.Channels
8 | {
9 | public class NotYetConnectedException : IOException
10 | {
11 | public static readonly NotYetConnectedException Instance = new NotYetConnectedException();
12 |
13 | private NotYetConnectedException()
14 | {
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/tests/Helios.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/Helios/Net/IConnectionBuilder.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 | using Helios.Topology;
7 |
8 | namespace Helios.Net
9 | {
10 | ///
11 | /// Interface used for building connections
12 | ///
13 | public interface IConnectionBuilder
14 | {
15 | TimeSpan Timeout { get; }
16 |
17 | IConnection BuildConnection(INode node);
18 | }
19 | }
--------------------------------------------------------------------------------
/tests/Helios.MultiNodeTests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/Helios/Channels/ConnectTimeoutException.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.IO;
6 |
7 | namespace Helios.Channels
8 | {
9 | public class ConnectTimeoutException : IOException
10 | {
11 | public ConnectTimeoutException(string message)
12 | : base(message)
13 | {
14 | }
15 |
16 | public ConnectTimeoutException()
17 | {
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/Sockets/ISocketChannel.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Channels.Sockets
6 | {
7 | ///
8 | /// Marker interface for channels which use TCP / UDP sockets
9 | ///
10 | public interface ISocketChannel : IChannel
11 | {
12 | new IServerSocketChannel Parent { get; }
13 | new ISocketChannelConfiguration Configuration { get; }
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Helios/Concurrency/IRunnable.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Threading.Tasks;
6 |
7 | namespace Helios.Concurrency
8 | {
9 | ///
10 | /// Any aynchronous operation, whether it be a delegate, , etc, which will
11 | /// be executed later by an
12 | ///
13 | public interface IRunnable
14 | {
15 | void Run();
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Helios/Concurrency/IScheduledTask.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Runtime.CompilerServices;
6 | using System.Threading.Tasks;
7 | using Helios.Util.TimedOps;
8 |
9 | namespace Helios.Concurrency
10 | {
11 | public interface IScheduledTask
12 | {
13 | PreciseDeadline Deadline { get; }
14 |
15 | Task Completion { get; }
16 | bool Cancel();
17 |
18 | TaskAwaiter GetAwaiter();
19 | }
20 | }
--------------------------------------------------------------------------------
/tests/Helios.Tests/Util/Collections/ConcurrentCircularBufferTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using Helios.Util.Collections;
6 |
7 | namespace Helios.Tests.Util.Collections
8 | {
9 | public class ConcurrentCircularBufferTests : CircularBufferTests
10 | {
11 | protected override ICircularBuffer GetBuffer(int capacity)
12 | {
13 | return new ConcurrentCircularBuffer(capacity);
14 | }
15 | }
16 | }
--------------------------------------------------------------------------------
/tools/nunit/NUnitTests.nunit:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/src/Helios/Eventing/ITopicSubscription.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Eventing
8 | {
9 | ///
10 | /// A subscription object - exists primarily to make subscription callbacks
11 | /// refactorable in the future
12 | ///
13 | public interface ITopicSubscription
14 | {
15 | void Invoke();
16 |
17 | void Invoke(object sender, EventArgs e);
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Helios/Logging/StandardOutLoggerFactory.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Logging
6 | {
7 | ///
8 | /// Creates instances.
9 | ///
10 | public class StandardOutLoggerFactory : LoggingFactory
11 | {
12 | protected override ILogger NewInstance(string name, params LogLevel[] supportedLogLevels)
13 | {
14 | return new StdOutLogger(name);
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Helios/Channels/Bootstrap/INameResolver.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Net;
6 | using System.Net.Sockets;
7 | using System.Threading.Tasks;
8 |
9 | namespace Helios.Channels.Bootstrap
10 | {
11 | public interface INameResolver
12 | {
13 | bool IsResolved(EndPoint address);
14 |
15 | Task ResolveAsync(EndPoint address);
16 |
17 | Task ResolveAsync(EndPoint address, AddressFamily preferredFamily);
18 | }
19 | }
--------------------------------------------------------------------------------
/src/Helios/Buffers/IByteBufAllocator.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Buffers
6 | {
7 | ///
8 | /// Thread-safe interface for allocating instances for use inside Helios reactive I/O
9 | ///
10 | public interface IByteBufAllocator
11 | {
12 | IByteBuf Buffer();
13 |
14 | IByteBuf Buffer(int initialCapcity);
15 |
16 | IByteBuf Buffer(int initialCapacity, int maxCapacity);
17 | }
18 | }
--------------------------------------------------------------------------------
/src/Helios/Logging/NoOpLoggerFactory.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | namespace Helios.Logging
6 | {
7 | ///
8 | /// Factory for creating s, which don't actually log anything
9 | ///
10 | public class NoOpLoggerFactory : LoggingFactory
11 | {
12 | protected override ILogger NewInstance(string name, params LogLevel[] supportedLogLevels)
13 | {
14 | return NoOpLogger.Instance;
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/src/Helios/Net/NetworkDataExtensions.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.IO;
6 |
7 | namespace Helios.Net
8 | {
9 | ///
10 | /// Extension methods for working with NetworkData objects - deals primarily with Stream conversion
11 | ///
12 | public static class NetworkDataExtensions
13 | {
14 | public static Stream ToStream(this NetworkData nd)
15 | {
16 | return new MemoryStream(nd.Buffer, 0, nd.Length);
17 | }
18 | }
19 | }
--------------------------------------------------------------------------------
/tests/Helios.Tests/Buffer/BasicByteBufTests.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System.Text;
6 | using Helios.Buffers;
7 | using Xunit;
8 |
9 | namespace Helios.Tests.Buffer
10 | {
11 | public class BasicByteBufTests
12 | {
13 | [Fact]
14 | public void Should_pretty_print_buffer()
15 | {
16 | var buf = Unpooled.Buffer(10).WriteBoolean(true).WriteInt(4);
17 | var str = buf.ToString(Encoding.ASCII);
18 | Assert.NotNull(str);
19 | }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Helios/Exceptions/Events/ExceptionEventArgs.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Exceptions.Events
8 | {
9 | ///
10 | /// Event arguments used for topic subscriptions that subscribe to Exception Events
11 | ///
12 | public class ExceptionEventArgs : EventArgs
13 | {
14 | public ExceptionEventArgs(Exception ex)
15 | {
16 | Exception = ex;
17 | }
18 |
19 | public Exception Exception { get; protected set; }
20 | }
21 | }
--------------------------------------------------------------------------------
/src/Helios/Eventing/Subscriptions/TopicHelpers.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) Petabridge . All rights reserved.
2 | // Licensed under the Apache 2.0 license. See LICENSE file in the project root for full license information.
3 | // See ThirdPartyNotices.txt for references to third party code used inside Helios.
4 |
5 | using System;
6 |
7 | namespace Helios.Eventing.Subscriptions
8 | {
9 | ///
10 | /// Extension method class used to help create EventBroker
11 | /// topics from lambda methods
12 | ///
13 | public static class TopicHelpers
14 | {
15 | public static NormalTopicSubscription Subscription(this Action