// RxWindows.h
|
#pragma once
|
#include <functional>
|
#include "IRxObject.h"
|
#include "IObserver.h"
|
#include "IAny.h"
|
#include "IThrowable.h"
|
#include "IObservable.h"
|
#include "IObservableEmitter.h"
|
|
typedef std::function<void(IAny *pAny)> ONNEXT;
|
typedef std::function<void()> ONCOMPLETE;
|
typedef std::function<void(IThrowable *pThrowable)> ONERROR;
|
typedef std::function<void(IObservableEmitter *e)> 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();
|