#ifndef VCZH_WORKFLOW_LIBRARY_REFLECTION
#define VCZH_WORKFLOW_LIBRARY_REFLECTION
#include "WfLibraryPredefined.h"
namespace
{
namespace
{
namespace
{
#ifndef VCZH_DEBUG_NO_REFLECTION
#define WORKFLOW_LIBRARY_TYPES(F)\
F(Sys) \
F(Math) \
F(Localization) \
F(CoroutineStatus) \
F(CoroutineResult) \
F(ICoroutine) \
F(EnumerableCoroutine::IImpl) \
F(EnumerableCoroutine) \
F(AsyncStatus) \
F(AsyncContext) \
F(IAsync) \
F(IPromise) \
F(IFuture) \
F(IAsyncScheduler) \
F(AsyncCoroutine::IImpl) \
F(AsyncCoroutine) \
F(StateMachine) \
WORKFLOW_LIBRARY_TYPES(DECL_TYPE_INFO)
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
::
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
::
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
template
<>
struct
<
>{
static
const
; };
#endif
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
#pragma warning(push)
#pragma warning(disable:
4250
)
BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(ICoroutine)
template
<>
class
<
> :
public
<
> {
typedef
_interface_proxy_InterfaceType
;
public
:
static
<
>
(
<
>
) {
auto
=
new
<
>();
obj
->
(
);
return
obj
; }
void
(
bool
,
<
>
)
override
{
INVOKE_INTERFACE_PROXY(Resume, raiseException, output);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
,
))>(
,
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
))));
}
<
>
()
override
{
INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetFailure);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
())>())) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
return
<
decltype
(
())>(
(
_interface_proxy_methodInfo
,
::
()));
}
()
override
{
INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetStatus);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
())>())) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
return
<
decltype
(
())>(
(
_interface_proxy_methodInfo
,
::
()));
}
END_INTERFACE_PROXY(ICoroutine)
};
BEGIN_INTERFACE_PROXY_NOPARENT_SHAREDPTR(IAsync)
template
<>
class
<
> :
public
<
> {
typedef
_interface_proxy_InterfaceType
;
public
:
static
<
>
(
<
>
) {
auto
=
new
<
>();
obj
->
(
);
return
obj
; }
()
override
{
INVOKEGET_INTERFACE_PROXY_NOPARAMS(GetStatus);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
())>())) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
return
<
decltype
(
())>(
(
_interface_proxy_methodInfo
,
::
()));
}
bool
(
const
<
void
(
<
>)>&
,
<
>
)
override
{
INVOKEGET_INTERFACE_PROXY(Execute, callback, context);
static
*
_interface_proxy_typeDescriptor
=
nullptr
;
static
*
_interface_proxy_methodInfo
=
nullptr
;
if
(
_interface_proxy_typeDescriptor
!=
static_cast
<
*>(
this
)->
()) {
_interface_proxy_typeDescriptor
=
static_cast
<
*>(
this
)->
();
do
{
if
(!(
_interface_proxy_typeDescriptor
!=
nullptr
))
throw
(
L"Internal error: The type of this interface has not been registered."
);}
while
(
0
);
auto
=
dynamic_cast
<
::
*>(
_interface_proxy_typeDescriptor
);
do
{
if
(!(
impl
!=
nullptr
))
throw
(
L"Internal error: BEGIN_INTERFACE_PROXY is the only correct way to register an interface with a proxy."
);}
while
(
0
);
auto
= (
decltype
(
<
_interface_proxy_InterfaceType
,
decltype
(
(
,
))>(
,
))) &
_interface_proxy_InterfaceType
::
;
MethodPointerBinaryDataRetriver
<
decltype
(
_interface_proxy_method
)>
(
_interface_proxy_method
);
_interface_proxy_methodInfo
=
impl
->
(
binaryData
.
()); }
return
<
decltype
(
(
,
))>(
(
_interface_proxy_methodInfo
,
::
(
collections
::
((
collections
::
<
>&)(
()
)))));
}
END_INTERFACE_PROXY(IAsync)
};
#pragma warning(pop)
#endif
extern
bool
();
}
}
}
#endif