summaryrefslogtreecommitdiff
path: root/plugins/modernb/hdr/modern_callproc.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/modernb/hdr/modern_callproc.h')
-rw-r--r--plugins/modernb/hdr/modern_callproc.h128
1 files changed, 0 insertions, 128 deletions
diff --git a/plugins/modernb/hdr/modern_callproc.h b/plugins/modernb/hdr/modern_callproc.h
deleted file mode 100644
index e3c1df900d..0000000000
--- a/plugins/modernb/hdr/modern_callproc.h
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef modern_callproc_h__
-#define modern_callproc_h__
-
-namespace call {
-#include <windows.h>
-
-//////////////////////////////////////////////////////////////////////////
-// USE AS
-// ret = call::sync( proc, param1, param2 ... etc)
-//////////////////////////////////////////////////////////////////////////
-// internal realization
-enum ASYNC_T { ASYNC = 0, SYNC };
-int __ProcessCall( class __baseCall * pStorage, ASYNC_T async );
-
-class __baseCall { public: virtual int __DoCallStorageProc() =0; virtual ~__baseCall() {}; };
-template< class R > class _callParams0 : public __baseCall
-{
-public:
- R(*_proc)();
- _callParams0( R (*proc)() ) : _proc(proc){};
- int __DoCallStorageProc() { return (int)_proc(); }
-};
-
-template<> class _callParams0<void> : public __baseCall
-{
-public:
- void(*_proc)();
- _callParams0( void (*proc)() ) : _proc(proc){};
- int __DoCallStorageProc() { _proc(); return 0; }
-};
-
-template< class R, class A> class _callParams1 : public __baseCall
-{
-public:
- R(*_proc)(A); A _a;
- _callParams1( R(*proc)(A), A a) : _proc(proc), _a(a) {};
- int __DoCallStorageProc() { return (int)_proc(_a); }
-};
-
-template<class A> class _callParams1<void, A> : public __baseCall
-{
-public:
- void(*_proc)(A); A _a;
- _callParams1( void(*proc)(A), A a) : _proc(proc), _a(a) {};
- int __DoCallStorageProc() { _proc(_a); return 0; }
-};
-
-template< class R, class A, class B> class _callParams2 : public __baseCall
-{
-public:
- R (*_proc)(A, B); A _a; B _b;
- _callParams2( R (*proc)(A, B), A a, B b) : _proc(proc), _a(a), _b(b) {};
- int __DoCallStorageProc() { return (int)_proc(_a, _b); }
-};
-
-template< class A, class B> class _callParams2<void, A, B> : public __baseCall
-{
-public:
- void (*_proc)(A, B); A _a; B _b;
- _callParams2( void (*proc)(A, B), A a, B b) : _proc(proc), _a(a), _b(b) {};
- int __DoCallStorageProc() { _proc(_a, _b); return 0; }
-};
-
-template< class R, class A, class B, class C> class _callParams3 : public __baseCall
-{
-public:
- R (*_proc)(A, B, C); A _a; B _b; C _c;
- _callParams3( R (*proc)(A, B, C), A a, B b, C c ) : _proc(proc), _a(a), _b(b), _c(c) {};
- int __DoCallStorageProc() { return (int)_proc(_a,_b,_c); }
-};
-
-template< class A, class B, class C> class _callParams3<void, A, B, C> : public __baseCall
-{
-public:
- void (*_proc)(A, B, C); A _a; B _b; C _c;
- _callParams3( void (*proc)(A, B, C), A a, B b, C c ) : _proc(proc), _a(a), _b(b), _c(c) {};
- int __DoCallStorageProc() { _proc(_a,_b,_c); return 0;}
-};
-
-template < class R > R __DoCall( R(*__proc)(), ASYNC_T sync_mode )
-{
- typedef _callParams0< R > callClass;
- callClass * storage = new callClass( __proc );
- return (R) call::__ProcessCall( storage, sync_mode );
-};
-
-template < class R, class A > R __DoCall( R(*__proc)( A ), A a, ASYNC_T sync_mode )
-{
- typedef _callParams1< R, A > callClass;
- callClass * storage = new callClass( __proc, a );
- return (R)__ProcessCall( storage, sync_mode );
-};
-
-
-template < class R, class A, class B > R __DoCall( R(*__proc)( A, B ), A a, B b, ASYNC_T sync_mode )
-{
- typedef _callParams2< R, A, B > callClass;
- callClass * storage = new callClass( __proc, a, b);
- return (R)__ProcessCall( storage, sync_mode );
-};
-
-
-template < class R, class A, class B, class C > R __DoCall( R(*__proc)( A, B, C ), A a, B b, C c, ASYNC_T sync_mode )
-{
- typedef _callParams3< R, A, B, C > callClass;
- callClass * storage = new callClass( __proc, a, b, c);
- return (R)__ProcessCall( storage, sync_mode );
-};
-
-
-template < class R > R sync( R(*_proc)() )
-{ return __DoCall(_proc, SYNC); };
-template < class R, class A > R sync( R(*_proc)( A ), A a )
-{ return __DoCall(_proc, a, SYNC); };
-template < class R, class A, class B > R sync( R(*_proc)( A,B), A a, B b )
-{ return __DoCall(_proc, a, b, SYNC); };
-template < class R, class A, class B, class C > R sync( R(*_proc)( A,B,C ), A a, B b, C c)
-{ return __DoCall(_proc, a, b, c, SYNC); };
-template < class R > int async( R(*_proc)() )
-{ return __DoCall(_proc, ASYNC); };
-template < class R, class A > R async( R(*_proc)( A ), A a )
-{ return __DoCall(_proc, a, ASYNC); };
-template < class R, class A, class B > R async( R(*_proc)( A,B), A a, B b )
-{ return __DoCall(_proc, a, b, ASYNC); };
-template < class R, class A, class B, class C > R async( R(*_proc)( A,B,C ), A a, B b, C c)
-{ return __DoCall(_proc, a, b, c, ASYNC); };
-}; // namespace call
-#endif // modern_callproc_h__