#include <limits.h>
#include <float.h>
#include "WfLibraryReflection.h"
namespace
{
using
namespace
collections
;
using
namespace
regex
;
namespace
{
namespace
{
#ifndef VCZH_DEBUG_NO_REFLECTION
IMPL_TYPE_INFO_RENAME(vl::reflection::description::Sys, system::Sys)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::Sys"
,
L"vl::reflection::description::Sys"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::Math, system::Math)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::Math"
,
L"vl::reflection::description::Math"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::Localization, system::Localization)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::Localization"
,
L"vl::reflection::description::Localization"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::CoroutineStatus, system::CoroutineStatus)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::CoroutineStatus"
,
L"vl::reflection::description::CoroutineStatus"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::CoroutineResult, system::CoroutineResult)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::CoroutineResult"
,
L"vl::reflection::description::CoroutineResult"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::ICoroutine, system::Coroutine)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::Coroutine"
,
L"vl::reflection::description::ICoroutine"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::EnumerableCoroutine::IImpl, system::EnumerableCoroutine::IImpl)
const
<
vl
::
reflection
::
description
::
::
>::
= {
L"system::EnumerableCoroutine::IImpl"
,
L"vl::reflection::description::EnumerableCoroutine::IImpl"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::EnumerableCoroutine, system::EnumerableCoroutine)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::EnumerableCoroutine"
,
L"vl::reflection::description::EnumerableCoroutine"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::AsyncStatus, system::AsyncStatus)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::AsyncStatus"
,
L"vl::reflection::description::AsyncStatus"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::AsyncContext, system::AsyncContext)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::AsyncContext"
,
L"vl::reflection::description::AsyncContext"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IAsync, system::Async)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::Async"
,
L"vl::reflection::description::IAsync"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IPromise, system::Promise)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::Promise"
,
L"vl::reflection::description::IPromise"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IFuture, system::Future)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::Future"
,
L"vl::reflection::description::IFuture"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::IAsyncScheduler, system::AsyncScheduler)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::AsyncScheduler"
,
L"vl::reflection::description::IAsyncScheduler"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::AsyncCoroutine::IImpl, system::AsyncCoroutine::IImpl)
const
<
vl
::
reflection
::
description
::
::
>::
= {
L"system::AsyncCoroutine::IImpl"
,
L"vl::reflection::description::AsyncCoroutine::IImpl"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::AsyncCoroutine, system::AsyncCoroutine)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::AsyncCoroutine"
,
L"vl::reflection::description::AsyncCoroutine"
,
::
};
IMPL_TYPE_INFO_RENAME(vl::reflection::description::StateMachine, system::StateMachine)
const
<
vl
::
reflection
::
description
::
>::
= {
L"system::StateMachine"
,
L"vl::reflection::description::StateMachine"
,
::
};
#endif
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
#define _ ,
BEGIN_CLASS_MEMBER(Sys)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_STATIC_METHOD(Int32ToInt, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Int32ToInt"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Int64ToInt, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Int64ToInt"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(IntToInt32, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"IntToInt32"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(IntToInt64, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"IntToInt64"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(UInt32ToUInt, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"UInt32ToUInt"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(UInt64ToUInt, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"UInt64ToUInt"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(UIntToUInt32, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"UIntToUInt32"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(UIntToUInt64, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"UIntToUInt64"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Len, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Len"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Left, { L"value" _ L"length" })
{
const
wchar_t
*
[]={
L"value"
,
L"length"
};
(
L"Left"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Right, { L"value" _ L"length" })
{
const
wchar_t
*
[]={
L"value"
,
L"length"
};
(
L"Right"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Mid, { L"value" _ L"start" _ L"length" })
{
const
wchar_t
*
[]={
L"value"
,
L"start"
,
L"length"
};
(
L"Mid"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Find, { L"value" _ L"substr" })
{
const
wchar_t
*
[]={
L"value"
,
L"substr"
};
(
L"Find"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(UCase, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"UCase"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(LCase, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"LCase"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(LoremIpsumTitle, { L"bestLength" })
{
const
wchar_t
*
[]={
L"bestLength"
};
(
L"LoremIpsumTitle"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(LoremIpsumSentence, { L"bestLength" })
{
const
wchar_t
*
[]={
L"bestLength"
};
(
L"LoremIpsumSentence"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(LoremIpsumParagraph, { L"bestLength" })
{
const
wchar_t
*
[]={
L"bestLength"
};
(
L"LoremIpsumParagraph"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ReverseEnumerable, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"ReverseEnumerable"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
#pragma push_macro("CompareString")
#if defined CompareString
#undef CompareString
#endif
#define DEFINE_COMPARE(TYPE) CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Compare, PROTECT_PARAMETERS({L"a" _ L"b"}), vint(*)(TYPE, TYPE))
REFLECTION_PREDEFINED_PRIMITIVE_TYPES(DEFINE_COMPARE)
{
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
float
,
float
)>::
>(
parameterNames
, (
(*)(
float
,
float
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
double
,
double
)>::
>(
parameterNames
, (
(*)(
double
,
double
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
bool
,
bool
)>::
>(
parameterNames
, (
(*)(
bool
,
bool
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
wchar_t
,
wchar_t
)>::
>(
parameterNames
, (
(*)(
wchar_t
,
wchar_t
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); }
DEFINE_COMPARE(DateTime)
{
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Compare"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); }
#undef DEFINE_COMPARE
#pragma pop_macro("CompareString")
CLASS_MEMBER_STATIC_METHOD(GetLocalTime, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"GetLocalTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetUtcTime, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"GetUtcTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ToLocalTime, { L"dt" })
{
const
wchar_t
*
[]={
L"dt"
};
(
L"ToLocalTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ToUtcTime, { L"dt" })
{
const
wchar_t
*
[]={
L"dt"
};
(
L"ToUtcTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Forward, { L"dt" _ L"milliseconds" })
{
const
wchar_t
*
[]={
L"dt"
,
L"milliseconds"
};
(
L"Forward"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Backward, { L"dt" _ L"milliseconds" })
{
const
wchar_t
*
[]={
L"dt"
,
L"milliseconds"
};
(
L"Backward"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(CreateDateTime, {L"year" _ L"month" _ L"day" }, DateTime(*)(vint, vint, vint))
{
const
wchar_t
*
[]={
L"year"
,
L"month"
,
L"day"
};
(
L"CreateDateTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
,
)>::
>(
parameterNames
, (
(*)(
,
,
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(CreateDateTime, { L"year" _ L"month" _ L"day" _ L"hour" _ L"minute" _ L"second" _ L"milliseconds" }, DateTime(*)(vint, vint, vint, vint, vint, vint, vint))
{
const
wchar_t
*
[]={
L"year"
,
L"month"
,
L"day"
,
L"hour"
,
L"minute"
,
L"second"
,
L"milliseconds"
};
(
L"CreateDateTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
,
,
,
,
,
)>::
>(
parameterNames
, (
(*)(
,
,
,
,
,
,
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(CreateDateTime, { L"filetime" }, DateTime(*)(vuint64_t))
{
const
wchar_t
*
[]={
L"filetime"
};
(
L"CreateDateTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
)>::
>(
parameterNames
, (
(*)(
))&
::
,
nullptr
,
nullptr
) ); }
END_CLASS_MEMBER(Sys)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
BEGIN_CLASS_MEMBER(Math)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_STATIC_METHOD(Pi, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"Pi"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Abs, { L"value" }, vint8_t(*)(vint8_t))
{
const
wchar_t
*
[]={
L"value"
};
(
L"Abs"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
)>::
>(
parameterNames
, (
(*)(
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Abs, { L"value" }, vint16_t(*)(vint16_t))
{
const
wchar_t
*
[]={
L"value"
};
(
L"Abs"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
)>::
>(
parameterNames
, (
(*)(
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Abs, { L"value" }, vint32_t(*)(vint32_t))
{
const
wchar_t
*
[]={
L"value"
};
(
L"Abs"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
)>::
>(
parameterNames
, (
(*)(
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Abs, { L"value" }, vint64_t(*)(vint64_t))
{
const
wchar_t
*
[]={
L"value"
};
(
L"Abs"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
)>::
>(
parameterNames
, (
(*)(
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Abs, { L"value" }, float(*)(float))
{
const
wchar_t
*
[]={
L"value"
};
(
L"Abs"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
float
(*)(
float
)>::
>(
parameterNames
, (
float
(*)(
float
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Abs, { L"value" }, double(*)(double))
{
const
wchar_t
*
[]={
L"value"
};
(
L"Abs"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
double
(*)(
double
)>::
>(
parameterNames
, (
double
(*)(
double
))&
::
,
nullptr
,
nullptr
) ); }
#define DEFINE_MINMAX(TYPE)\
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Min, PROTECT_PARAMETERS({L"a" _ L"b"}), TYPE(*)(TYPE, TYPE))\
CLASS_MEMBER_STATIC_METHOD_OVERLOAD(Max, PROTECT_PARAMETERS({L"a" _ L"b"}), TYPE(*)(TYPE, TYPE))\
REFLECTION_PREDEFINED_PRIMITIVE_TYPES(DEFINE_MINMAX)
{
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
float
(*)(
float
,
float
)>::
>(
parameterNames
, (
float
(*)(
float
,
float
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
float
(*)(
float
,
float
)>::
>(
parameterNames
, (
float
(*)(
float
,
float
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
double
(*)(
double
,
double
)>::
>(
parameterNames
, (
double
(*)(
double
,
double
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
double
(*)(
double
,
double
)>::
>(
parameterNames
, (
double
(*)(
double
,
double
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
bool
(*)(
bool
,
bool
)>::
>(
parameterNames
, (
bool
(*)(
bool
,
bool
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
bool
(*)(
bool
,
bool
)>::
>(
parameterNames
, (
bool
(*)(
bool
,
bool
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
wchar_t
(*)(
wchar_t
,
wchar_t
)>::
>(
parameterNames
, (
wchar_t
(*)(
wchar_t
,
wchar_t
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
wchar_t
(*)(
wchar_t
,
wchar_t
)>::
>(
parameterNames
, (
wchar_t
(*)(
wchar_t
,
wchar_t
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); }
DEFINE_MINMAX(DateTime)
{
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Min"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); } {
const
wchar_t
*
[]={
L"a"
,
L"b"
};
(
L"Max"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
(*)(
,
)>::
>(
parameterNames
, (
(*)(
,
))&
::
,
nullptr
,
nullptr
) ); }
#undef DEFINE_MINMAX
CLASS_MEMBER_STATIC_METHOD(Sin, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Sin"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Cos, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Cos"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Tan, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Tan"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ASin, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"ASin"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ACos, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"ACos"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ATan, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"ATan"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ATan2, { L"x" _ L"y" })
{
const
wchar_t
*
[]={
L"x"
,
L"y"
};
(
L"ATan2"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Exp, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Exp"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(LogN, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"LogN"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Log10, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Log10"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Log, { L"value" _ L"base" })
{
const
wchar_t
*
[]={
L"value"
,
L"base"
};
(
L"Log"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Pow, { L"value" _ L"power" })
{
const
wchar_t
*
[]={
L"value"
,
L"power"
};
(
L"Pow"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Ceil, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Ceil"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Floor, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Floor"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Round, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Round"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Trunc, { L"value" })
{
const
wchar_t
*
[]={
L"value"
};
(
L"Trunc"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
END_CLASS_MEMBER(Math)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
BEGIN_CLASS_MEMBER(Localization)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_STATIC_METHOD(Invariant, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"Invariant"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(System, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"System"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(User, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"User"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Locales, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"Locales"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetShortDateFormats, { L"locale" })
{
const
wchar_t
*
[]={
L"locale"
};
(
L"GetShortDateFormats"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetLongDateFormats, { L"locale" })
{
const
wchar_t
*
[]={
L"locale"
};
(
L"GetLongDateFormats"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetYearMonthDateFormats, { L"locale" })
{
const
wchar_t
*
[]={
L"locale"
};
(
L"GetYearMonthDateFormats"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetLongTimeFormats, { L"locale" })
{
const
wchar_t
*
[]={
L"locale"
};
(
L"GetLongTimeFormats"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetShortTimeFormats, { L"locale" })
{
const
wchar_t
*
[]={
L"locale"
};
(
L"GetShortTimeFormats"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetShortDayOfWeekName, { L"locale" _ L"dayOfWeek" })
{
const
wchar_t
*
[]={
L"locale"
,
L"dayOfWeek"
};
(
L"GetShortDayOfWeekName"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetLongDayOfWeekName, { L"locale" _ L"dayOfWeek" })
{
const
wchar_t
*
[]={
L"locale"
,
L"dayOfWeek"
};
(
L"GetLongDayOfWeekName"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetShortMonthName, { L"locale" _ L"month" })
{
const
wchar_t
*
[]={
L"locale"
,
L"month"
};
(
L"GetShortMonthName"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(GetLongMonthName, { L"locale" _ L"month" })
{
const
wchar_t
*
[]={
L"locale"
,
L"month"
};
(
L"GetLongMonthName"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(FormatDate, { L"locale" _ L"format" _ L"date" })
{
const
wchar_t
*
[]={
L"locale"
,
L"format"
,
L"date"
};
(
L"FormatDate"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(FormatTime, { L"locale" _ L"format" _ L"date" })
{
const
wchar_t
*
[]={
L"locale"
,
L"format"
,
L"date"
};
(
L"FormatTime"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(FormatNumber, { L"locale" _ L"number" })
{
const
wchar_t
*
[]={
L"locale"
,
L"number"
};
(
L"FormatNumber"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(FormatCurrency, { L"locale" _ L"number" })
{
const
wchar_t
*
[]={
L"locale"
,
L"number"
};
(
L"FormatCurrency"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
END_CLASS_MEMBER(Localization)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
BEGIN_ENUM_ITEM(CoroutineStatus)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
<
,
::
> {
typedef
;
public
:
void
()
override
{
<
,
::
>::
();
ENUM_CLASS_ITEM(Waiting)
->AddItem(
L"Waiting"
,
::
);
ENUM_CLASS_ITEM(Executing)
->AddItem(
L"Executing"
,
::
);
ENUM_CLASS_ITEM(Stopped)
->AddItem(
L"Stopped"
,
::
);
END_ENUM_ITEM(CoroutineStatus)
} }; };
BEGIN_INTERFACE_MEMBER(ICoroutine)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
,
public
::
{
typedef
;
static
const
=
::
;
::
;
public
:
() :
(
::
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
void
(
const
&
,
*
)
override
{
.
(
,
); }
*
(
const
&
)
override
{
();
return
]; }
protected
:
void
()
override
{ {
const
wchar_t
*
[]={
L"proxy"
};
(
new
CustomStaticMethodInfoImpl
<
decltype
(
<
>::
(
nullptr
))(
<
>)>(
parameterNames
, (
<
decltype
(
<
>::
(
nullptr
))(
<
>)>)&::
vl
::
reflection
::
description
::
<
>::
,
L"::"
L"vl::reflection::description::ValueInterfaceProxy<ICoroutine>::Create"
L"($Arguments)"
,
L"::vl::Func<$Func>(&::"
L"vl::reflection::description::ValueInterfaceProxy<ICoroutine>::Create"
L")"
) ); }
CLASS_MEMBER_METHOD(Resume, { L"raiseException" _ L"output" })
{
const
wchar_t
*
[]={
L"raiseException"
,
L"output"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"Resume"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_PROPERTY_READONLY_FAST(Failure)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetFailure"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"Failure"
,
dynamic_cast
<
*>(
(
L"GetFailure"
,
true
)->GetMethod(
0
)),
nullptr
,
nullptr
) );
CLASS_MEMBER_PROPERTY_READONLY_FAST(Status)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetStatus"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"Status"
,
dynamic_cast
<
*>(
(
L"GetStatus"
,
true
)->GetMethod(
0
)),
nullptr
,
nullptr
) );
END_INTERFACE_MEMBER(ICoroutine)
if
(
GetBaseTypeDescriptorCount
() ==
0
&&
==
::
)
(
description
::
<
>()); } }; };
BEGIN_CLASS_MEMBER(CoroutineResult)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_CONSTRUCTOR(Ptr<CoroutineResult>(), NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
new
CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); }
CLASS_MEMBER_PROPERTY_FAST(Result)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetResult"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); } {
const
wchar_t
*
[]={
L"value"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"SetResult"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"Result"
,
dynamic_cast
<
*>(
(
L"GetResult"
,
true
)->GetMethod(
0
)),
dynamic_cast
<
*>(
(
L"SetResult"
,
true
)->GetMethod(
0
)),
nullptr
) );
CLASS_MEMBER_PROPERTY_FAST(Failure)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetFailure"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); } {
const
wchar_t
*
[]={
L"value"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"SetFailure"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"Failure"
,
dynamic_cast
<
*>(
(
L"GetFailure"
,
true
)->GetMethod(
0
)),
dynamic_cast
<
*>(
(
L"SetFailure"
,
true
)->GetMethod(
0
)),
nullptr
) );
END_CLASS_MEMBER(CoroutineResult)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
BEGIN_INTERFACE_MEMBER_NOPROXY(EnumerableCoroutine::IImpl)
template
<>
struct
CustomTypeDescriptorSelector
<
::
> {
public
:
class
:
public
,
public
::
{
typedef
::
;
static
const
=
::
;
::
;
public
:
() :
(
::
, &
<
::
>::
) {
<
::
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
::
>::
SetAssociatedTypeDescriptor
(
0
); }
void
(
const
&
,
*
)
override
{
.
(
,
); }
*
(
const
&
)
override
{
();
return
]; }
protected
:
void
()
override
{
CLASS_MEMBER_BASE(IValueEnumerator)
END_INTERFACE_MEMBER(EnumerableCoroutine::IImpl)
if
(
GetBaseTypeDescriptorCount
() ==
0
&&
==
::
)
(
description
::
<
>()); } }; };
BEGIN_CLASS_MEMBER(EnumerableCoroutine)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_STATIC_METHOD(YieldAndPause, { L"impl" _ L"value" })
{
const
wchar_t
*
[]={
L"impl"
,
L"value"
};
(
L"YieldAndPause"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(JoinAndPause, { L"impl" _ L"value" })
{
const
wchar_t
*
[]={
L"impl"
,
L"value"
};
(
L"JoinAndPause"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ReturnAndExit, { L"impl" })
{
const
wchar_t
*
[]={
L"impl"
};
(
L"ReturnAndExit"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Create, { L"creator" })
{
const
wchar_t
*
[]={
L"creator"
};
(
L"Create"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
END_CLASS_MEMBER(EnumerableCoroutine)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
BEGIN_ENUM_ITEM(AsyncStatus)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
<
,
::
> {
typedef
;
public
:
void
()
override
{
<
,
::
>::
();
ENUM_CLASS_ITEM(Executing)
->AddItem(
L"Executing"
,
::
);
ENUM_CLASS_ITEM(Stopped)
->AddItem(
L"Stopped"
,
::
);
END_ENUM_ITEM(AsyncStatus)
} }; };
BEGIN_CLASS_MEMBER(AsyncContext)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_CONSTRUCTOR(Ptr<AsyncContext>(const Value&), {L"context"})
{
const
wchar_t
*
[]={
L"context"
};
(
new
CustomConstructorInfoImpl
<
<
>(
const
&)>(
parameterNames
)); }
CLASS_MEMBER_METHOD(IsCancelled, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"IsCancelled"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_METHOD(Cancel, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"Cancel"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_PROPERTY_FAST(Context)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetContext"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); } {
const
wchar_t
*
[]={
L"value"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"SetContext"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"Context"
,
dynamic_cast
<
*>(
(
L"GetContext"
,
true
)->GetMethod(
0
)),
dynamic_cast
<
*>(
(
L"SetContext"
,
true
)->GetMethod(
0
)),
nullptr
) );
END_CLASS_MEMBER(AsyncContext)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
BEGIN_INTERFACE_MEMBER(IAsync)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
,
public
::
{
typedef
;
static
const
=
::
;
::
;
public
:
() :
(
::
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
void
(
const
&
,
*
)
override
{
.
(
,
); }
*
(
const
&
)
override
{
();
return
]; }
protected
:
void
()
override
{ {
const
wchar_t
*
[]={
L"proxy"
};
(
new
CustomStaticMethodInfoImpl
<
decltype
(
<
>::
(
nullptr
))(
<
>)>(
parameterNames
, (
<
decltype
(
<
>::
(
nullptr
))(
<
>)>)&::
vl
::
reflection
::
description
::
<
>::
,
L"::"
L"vl::reflection::description::ValueInterfaceProxy<IAsync>::Create"
L"($Arguments)"
,
L"::vl::Func<$Func>(&::"
L"vl::reflection::description::ValueInterfaceProxy<IAsync>::Create"
L")"
) ); }
CLASS_MEMBER_PROPERTY_READONLY_FAST(Status)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetStatus"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"Status"
,
dynamic_cast
<
*>(
(
L"GetStatus"
,
true
)->GetMethod(
0
)),
nullptr
,
nullptr
) );
CLASS_MEMBER_METHOD(Execute, { L"callback" _ L"context" })
{
const
wchar_t
*
[]={
L"callback"
,
L"context"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"Execute"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_STATIC_METHOD(Delay, { L"milliseconds" })
{
const
wchar_t
*
[]={
L"milliseconds"
};
(
L"Delay"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
END_INTERFACE_MEMBER(IAsync)
if
(
GetBaseTypeDescriptorCount
() ==
0
&&
==
::
)
(
description
::
<
>()); } }; };
BEGIN_INTERFACE_MEMBER_NOPROXY(IPromise)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
,
public
::
{
typedef
;
static
const
=
::
;
::
;
public
:
() :
(
::
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
void
(
const
&
,
*
)
override
{
.
(
,
); }
*
(
const
&
)
override
{
();
return
]; }
protected
:
void
()
override
{
CLASS_MEMBER_METHOD(SendResult, { L"result" })
{
const
wchar_t
*
[]={
L"result"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"SendResult"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_METHOD(SendFailure, { L"failure" })
{
const
wchar_t
*
[]={
L"failure"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"SendFailure"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
END_INTERFACE_MEMBER(IPromise)
if
(
GetBaseTypeDescriptorCount
() ==
0
&&
==
::
)
(
description
::
<
>()); } }; };
BEGIN_INTERFACE_MEMBER_NOPROXY(IFuture)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
,
public
::
{
typedef
;
static
const
=
::
;
::
;
public
:
() :
(
::
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
void
(
const
&
,
*
)
override
{
.
(
,
); }
*
(
const
&
)
override
{
();
return
]; }
protected
:
void
()
override
{
CLASS_MEMBER_BASE(IAsync)
CLASS_MEMBER_BASE(IPromise)
CLASS_MEMBER_PROPERTY_READONLY_FAST(Promise)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetPromise"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"Promise"
,
dynamic_cast
<
*>(
(
L"GetPromise"
,
true
)->GetMethod(
0
)),
nullptr
,
nullptr
) );
CLASS_MEMBER_STATIC_METHOD(Create, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"Create"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
END_INTERFACE_MEMBER(IFuture)
if
(
GetBaseTypeDescriptorCount
() ==
0
&&
==
::
)
(
description
::
<
>()); } }; };
BEGIN_INTERFACE_MEMBER_NOPROXY(IAsyncScheduler)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
,
public
::
{
typedef
;
static
const
=
::
;
::
;
public
:
() :
(
::
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
void
(
const
&
,
*
)
override
{
.
(
,
); }
*
(
const
&
)
override
{
();
return
]; }
protected
:
void
()
override
{
CLASS_MEMBER_METHOD(Execute, { L"callback" })
{
const
wchar_t
*
[]={
L"callback"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"Execute"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_METHOD(ExecuteInBackground, { L"callback" })
{
const
wchar_t
*
[]={
L"callback"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"ExecuteInBackground"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_METHOD(DelayExecute, { L"callback" _ L"milliseconds" })
{
const
wchar_t
*
[]={
L"callback"
,
L"milliseconds"
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"DelayExecute"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_STATIC_METHOD(GetSchedulerForCurrentThread, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
L"GetSchedulerForCurrentThread"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
GetSchedulerForCurrentThread
)>::
>(
parameterNames
, (
decltype
(&
::
GetSchedulerForCurrentThread
))&
::
GetSchedulerForCurrentThread
,
nullptr
,
nullptr
) ); }
END_INTERFACE_MEMBER(IAsyncScheduler)
if
(
GetBaseTypeDescriptorCount
() ==
0
&&
==
::
)
(
description
::
<
>()); } }; };
BEGIN_INTERFACE_MEMBER_NOPROXY(AsyncCoroutine::IImpl)
template
<>
struct
CustomTypeDescriptorSelector
<
::
> {
public
:
class
:
public
,
public
::
{
typedef
::
;
static
const
=
::
;
::
;
public
:
() :
(
::
, &
<
::
>::
) {
<
::
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
::
>::
SetAssociatedTypeDescriptor
(
0
); }
void
(
const
&
,
*
)
override
{
.
(
,
); }
*
(
const
&
)
override
{
();
return
]; }
protected
:
void
()
override
{
CLASS_MEMBER_BASE(IAsync)
END_INTERFACE_MEMBER(AsyncCoroutine::IImpl)
if
(
GetBaseTypeDescriptorCount
() ==
0
&&
==
::
)
(
description
::
<
>()); } }; };
BEGIN_CLASS_MEMBER(AsyncCoroutine)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_STATIC_METHOD(AwaitAndRead, { L"impl" _ L"value" })
{
const
wchar_t
*
[]={
L"impl"
,
L"value"
};
(
L"AwaitAndRead"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(ReturnAndExit, { L"impl" _ L"value"})
{
const
wchar_t
*
[]={
L"impl"
,
L"value"
};
(
L"ReturnAndExit"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(QueryContext, { L"impl" })
{
const
wchar_t
*
[]={
L"impl"
};
(
L"QueryContext"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(Create, { L"creator" })
{
const
wchar_t
*
[]={
L"creator"
};
(
L"Create"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
CLASS_MEMBER_STATIC_METHOD(CreateAndRun, { L"creator" })
{
const
wchar_t
*
[]={
L"creator"
};
(
L"CreateAndRun"
,
new
CustomStaticMethodInfoImpl
<
vl
::
function_lambda
::
FunctionObjectRetriveType
<
decltype
(&
::
)>::
>(
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
) ); }
END_CLASS_MEMBER(AsyncCoroutine)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
BEGIN_CLASS_MEMBER(StateMachine)
template
<>
struct
CustomTypeDescriptorSelector
<
> {
public
:
class
:
public
{
typedef
;
static
const
=
::
;
public
:
() :
(
, &
<
>::
) {
<
>::
SetAssociatedTypeDescriptor
(
this
); }
~
CustomTypeDescriptorImpl
() {
<
>::
SetAssociatedTypeDescriptor
(
0
); }
protected
:
bool
()
override
{
return
<
typename
<
,
<
>>::
>::
; }
void
()
override
{
CLASS_MEMBER_FIELD(stateMachineInitialized)
(
new
<
,
decltype
(((
*)
0
)->
) >(
this
,
L"stateMachineInitialized"
, &
::
) );
CLASS_MEMBER_FIELD(stateMachineStopped)
(
new
<
,
decltype
(((
*)
0
)->
) >(
this
,
L"stateMachineStopped"
, &
::
) );
CLASS_MEMBER_FIELD(stateMachineInput)
(
new
<
,
decltype
(((
*)
0
)->
) >(
this
,
L"stateMachineInput"
, &
::
) );
CLASS_MEMBER_FIELD(stateMachineCoroutine)
(
new
<
,
decltype
(((
*)
0
)->
) >(
this
,
L"stateMachineCoroutine"
, &
::
) );
CLASS_MEMBER_CONSTRUCTOR(Ptr<StateMachine>(), NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
(
new
CustomConstructorInfoImpl
<
<
>()>(
parameterNames
)); }
CLASS_MEMBER_METHOD(ResumeStateMachine, NO_PARAMETER)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"ResumeStateMachine"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
CLASS_MEMBER_PROPERTY_READONLY_FAST(StateMachineStatus)
{
const
wchar_t
*
[]={
L""
};
auto
=
new
<
,
vl
::
function_lambda
::
<
decltype
(&
::
)>::
> (
parameterNames
, (
decltype
(&
::
))&
::
,
nullptr
,
nullptr
);
(
L"GetStateMachineStatus"
,
methodInfo
);
MethodPointerBinaryDataRetriver
<
decltype
(&
::
)>
(&
::
);
MethodPointerBinaryDataRecorder
<
,
>::
(
binaryDataRetriver
.
(),
this
,
methodInfo
); }
(
new
(
this
,
L"StateMachineStatus"
,
dynamic_cast
<
*>(
(
L"GetStateMachineStatus"
,
true
)->GetMethod(
0
)),
nullptr
,
nullptr
) );
END_CLASS_MEMBER(StateMachine)
if
(
GetBaseTypeDescriptorCount
() ==
0
)
(
description
::
<
>()); } }; };
#undef _
class
:
public
,
public
{
public
:
void
(
*
)
override
{
WORKFLOW_LIBRARY_TYPES(ADD_TYPE_INFO)
{
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
::
>::
();
->
(
<
::
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
::
>::
();
->
(
<
::
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); } {
<
>
=
new
CustomTypeDescriptorSelector
<
>::
();
->
(
<
>::
.typeName,
type
); }
}
void
(
*
)
override
{
}
};
#endif
bool
()
{
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
*
=
();
if
(
manager
)
{
<
>
=
new
;
return
manager
->
(
loader
);
}
#endif
return
false
;
}
}
}
}