Skip to content

Instantly share code, notes, and snippets.

@yuta-kaseda
Last active July 26, 2017 08:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yuta-kaseda/d22df2d1d6747b5a4e8125ee933760dc to your computer and use it in GitHub Desktop.
Save yuta-kaseda/d22df2d1d6747b5a4e8125ee933760dc to your computer and use it in GitHub Desktop.
public class BossObservable<T> : OperatorObservableBase<T>
{
readonly IObservable<T> source;
public BossObservable(
IObservable<T> source)
: base(source.IsRequiredSubscribeOnCurrentThread())
{
this.source = source;
}
protected override IDisposable SubscribeCore(IObserver<T> observer, IDisposable cancel)
{
return source.Subscribe(new Boss(observer, cancel));
}
class Boss : OperatorObserverBase<T, T>
{
public Boss(
IObserver<T> observer,
IDisposable cancel) : base(observer, cancel)
{
Debug.Log("デキタヨ!");
}
public override void OnNext(T value)
{
Debug.Log("トオッタヨ!");
base.observer.OnNext(value);
}
public override void OnError(Exception error)
{
Debug.Log("アワワワワワ");
try
{
observer.OnError(error);
}
finally { Dispose(); }
}
public override void OnCompleted()
{
Debug.Log("ボクニマカセテ!");
try
{
observer.OnCompleted();
}
finally { Dispose(); }
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment