我正在尝试在Rx-cpp
中实施var url = URLComponents()
url.queryItemsDictionary = ["firstName" : "John",
"lastName" : "Appleseed"]
模式。这些tutorial在Rx.Net
中非常有趣,关于某人如何做到这一点。
在这个observer/observable
示例中,我们必须覆盖特定的C#
:
interfaces
据我了解,在public interface IObserver<in T>
{
void OnCompleted();
void OnError(Exception error);
void OnNext(T value);
}
public interface IObservable<out T>
{
IDisposable Subscribe(IObserver<T> observer);
}
中没有这么方便。那么,是否可以向我提供一些标题示例(Rx-cpp
/ myObservable.h
),类似于上面的myObserver.h
,我可以将其用作定义相同通信模式的指导?
非常感谢任何帮助, 谢谢!
编辑1:
感谢interfaces
,我正在尝试进行面向类的沟通。到目前为止,我有可观察模式的代码。我想要的是定义一个观察者列表,这些观察者将附加到observable中,当调用@zentrunix
时,应该通知这些观察者。然而,缺少部分。
答案 0 :(得分:3)
下面的RxCpp中的一个非常简单的例子。 但是(至少)有一个警告:典型的RxCpp代码大量使用lambdas,我非常不喜欢。
我也试图在互联网上找到文档和教程,但找不到任何文档和教程。我对线程模型的解释特别感兴趣。
如果您愿意浏览代码和Doxygen文档,RxCpp GitHub站点中有很多示例。
#include <iostream>
#include <exception>
#include "rxcpp/rx.hpp"
namespace rx = rxcpp;
static void onNext(int n) { std::cout << "* " << n << "\n"; }
static void onEnd() { std::cout << "* end\n"; }
static void onError(std::exception_ptr ep)
{
try { std::rethrow_exception(ep); }
catch (std::exception& e) { std::cout << "* exception " << e.what() << '\n'; }
}
static void observableImpl(rx::subscriber<int> s)
{
s.on_next(1);
s.on_next(2);
s.on_completed();
}
int main()
{
auto o = rxcpp::observable<>::create<int>(observableImpl);
std::cout << "*\n";
o.subscribe(onNext, onEnd);
}