// RxWindows.h #pragma once #include #include "IRxObject.h" #include "IObserver.h" #include "IAny.h" #include "IThrowable.h" #include "IObservable.h" #include "IObservableEmitter.h" typedef std::function ONNEXT; typedef std::function ONCOMPLETE; typedef std::function ONERROR; typedef std::function SUBSCRIBE; class IRxWindows { public: virtual IObserver *allocObserver(ONNEXT pfOnNext, ONCOMPLETE pfOnComplete, ONERROR pfOnError) = 0; virtual void freeObserver(IObserver *pObserver) = 0; virtual unsigned long getMainThreadId() = 0; virtual unsigned long mainThread() = 0; virtual unsigned long newThread() = 0; virtual int termThread(unsigned long nThread) = 0; virtual void enableLog(int level) = 0; }; extern "C" _declspec(dllexport) int RX_Init(); extern "C" _declspec(dllexport) int RX_Term(); extern "C" _declspec(dllexport) IRxWindows *RX_GetRxWindows(); extern "C" _declspec(dllexport) IObservable *RX_AllocaObservable(SUBSCRIBE pfSubscribe); extern "C" _declspec(dllexport) void RX_FreeObservable(IObservable *pObservable); extern "C" _declspec(dllexport) IAny *RX_AllocaAny();