Skip to content

Initial API release #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from May 12, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Auto detect text files and perform LF normalization
* text=auto


# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union

# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

# Needed for Mono build shell script
*.sh -text eol=lf

# Needed for API Approvals
*.txt text eol=crlf
201 changes: 201 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@

#GitExtensions
us.stackdump

#KDiff3 and other git merge tools
*.orig

#-------------------------------------------------------------------------------
#Based on https://github.com/github/gitignore/blob/master/VisualStudio.gitignore

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

#MonoDevelop
*.userprefs

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/

# Roslyn cache directories
*.ide/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# NBench results
[Pp]erf[Rr]esult*/

#NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc

# Chutzpah Test files
_Chutzpah*

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding addin-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml
*.ncrunchsolution
*.v2.ncrunchproject


# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment out the next line if you want to keep your passwords hidden
*.pubxml

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# If using the old MSBuild-Integrated Package Restore, uncomment this:
!**/packages/repositories.config

# Windows Azure Build Output
csx/
*.build.csdef

# Windows Store app package directory
AppPackages/

# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf

# make exception for Akka.Persistence.SqlServer database file
!AkkaPersistenceSqlServerSpecDb.mdf
!AkkaPersistenceSqlServerSpecDb_log.ldf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
1 change: 1 addition & 0 deletions CopyrightWaivers.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ Underwriting parties:

github name | Real Name, Email Address used for git commits, Company
---------------+----------------------------------------------------------------------------
cconstantin | Chris Constantin, [email protected], Aligned Software Solutions, Inc.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Reactive Streams .NET#
The purpose of Reactive Streams is to provide a standard for asynchronous stream processing with non-blocking backpressure.
For now, see the details for the (JVM)[https://github.com/reactive-streams/reactive-streams-jvm/blob/master/README.md].
# Reactive Streams .NET#

The purpose of Reactive Streams is to provide a standard for asynchronous stream processing with non-blocking backpressure.

For now, see the details for the [JVM](https://github.com/reactive-streams/reactive-streams-jvm/blob/master/README.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

22 changes: 22 additions & 0 deletions src/Reactive.Streams.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25123.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Reactive.Streams", "Reactive.Streams\Reactive.Streams.csproj", "{68FBB4DF-6D83-4CF1-8105-A1D41912852F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{68FBB4DF-6D83-4CF1-8105-A1D41912852F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68FBB4DF-6D83-4CF1-8105-A1D41912852F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68FBB4DF-6D83-4CF1-8105-A1D41912852F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68FBB4DF-6D83-4CF1-8105-A1D41912852F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
20 changes: 20 additions & 0 deletions src/Reactive.Streams/IProcessor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
namespace Reactive.Streams
{
/// <summary>
/// A Processor represents a processing stage—which is both a <see cref="ISubscriber"/>
/// and a <see cref="IPublisher"/> and obeys the contracts of both.
/// </summary>
public interface IProcessor : ISubscriber, IPublisher
{
}

/// <summary>
/// A Processor represents a processing stage—which is both a <see cref="ISubscriber{T}"/>
/// and a <see cref="IPublisher{T}"/> and obeys the contracts of both.
/// </summary>
/// <typeparam name="T1">The type of element signaled to the <see cref="ISubscriber{T}"/></typeparam>
/// <typeparam name="T2">The type of element signaled to the <see cref="IPublisher{T}"/></typeparam>
public interface IProcessor<in T1, out T2> : IProcessor, ISubscriber<T1>, IPublisher<T2>
{
}
}
77 changes: 77 additions & 0 deletions src/Reactive.Streams/IPublisher.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
namespace Reactive.Streams
{
/// <summary>
/// <para>
/// A <see cref="IPublisher"/> is a provider of a potentially unbounded number of sequenced elements,
/// publishing them according to the demand received from its <see cref="ISubscriber"/>.
/// </para>
/// <para>
/// A <see cref="IPublisher"/> can serve multiple <see cref="ISubscriber"/>s subscribed dynamically
/// at various points in time.
/// </para>
/// </summary>
public interface IPublisher
{
/// <summary>
/// <para>
/// Request <see cref="IPublisher"/> to start streaming data.
/// </para>
/// <para>
/// This is a "factory method" and can be called multiple times, each time starting a new
/// <see cref="ISubscription"/>.
/// </para>
/// <para>
/// Each <see cref="ISubscription"/> will work for only a single <see cref="ISubscriber"/>.
/// </para>
/// <para>
/// A <see cref="ISubscriber"/> should only subscribe once to a single
/// <see cref="IPublisher"/>.
/// </para>
/// <para>
/// If the <see cref="IPublisher"/> rejects the subscription attempt or otherwise fails
/// it will signal the error via <see cref="ISubscriber.OnError"/>.
/// </para>
/// </summary>
/// <param name="subscriber">The <see cref="ISubscriber"/> that will consume signals
/// from this <see cref="IPublisher"/></param>
void Subscribe(ISubscriber subscriber);
}

/// <summary>
/// <para>
/// A <see cref="IPublisher{T}"/> is a provider of a potentially unbounded number of sequenced elements,
/// publishing them according to the demand received from its <see cref="ISubscriber{T}"/>.
/// </para>
/// <para>
/// A <see cref="IPublisher{T}"/> can serve multiple <see cref="ISubscriber{T}"/>s subscribed dynamically
/// at various points in time.
/// </para>
/// </summary>
/// <typeparam name="T">The type of element signaled.</typeparam>
public interface IPublisher<out T> : IPublisher
{
/// <summary>
/// <para>
/// Request <see cref="IPublisher{T}"/> to start streaming data.
/// </para>
/// <para>
/// This is a "factory method" and can be called multiple times, each time starting a new
/// <see cref="ISubscription"/>.
/// </para>
/// <para>
/// Each <see cref="ISubscription"/> will work for only a single <see cref="ISubscriber{T}"/>.
/// </para>
/// <para>
/// A <see cref="ISubscriber{T}"/> should only subscribe once to a single
/// <see cref="IPublisher{T}"/>.
/// </para>
/// <para>
/// If the <see cref="IPublisher{T}"/> rejects the subscription attempt or otherwise fails
/// it will signal the error via <see cref="ISubscriber.OnError"/>.
/// </para>
/// </summary>
/// <param name="subscriber">The <see cref="ISubscriber{T}"/> that will consume signals
/// from this <see cref="IPublisher{T}"/></param>
void Subscribe(ISubscriber<T> subscriber);
}
}
Loading