#ifndef VCZH_WORKFLOW_RUNTIME_WFRUNTIMETYPEDESCRIPTOR
#define VCZH_WORKFLOW_RUNTIME_WFRUNTIMETYPEDESCRIPTOR
#include <Vlpp.h>
namespace
{
namespace
{
namespace
{
class
;
class
;
}
}
namespace
{
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
#define DEFINE_DESCRIPTION(TYPE)\
template<>\
class Description<workflow::typeimpl::TYPE> : public virtual DescriptableObject\
{\
private:\
description::ITypeDescriptor* associatedTypeDescriptor;\
public:\
Description(description::ITypeDescriptor* _associatedTypeDescriptor)\
:associatedTypeDescriptor(_associatedTypeDescriptor)\
{\
typeDescriptor = &associatedTypeDescriptor;\
}\
};\
DEFINE_DESCRIPTION(WfClassInstance)
template
<>
class
<
workflow
::
typeimpl
::
> :
public
virtual
{
private
:
description
::
*
;
public
:
(
description
::
*
_associatedTypeDescriptor
) :associatedTypeDescriptor(
_associatedTypeDescriptor
) {
= &
; } };
DEFINE_DESCRIPTION(WfInterfaceInstance)
template
<>
class
<
workflow
::
typeimpl
::
> :
public
virtual
{
private
:
description
::
*
;
public
:
(
description
::
*
_associatedTypeDescriptor
) :associatedTypeDescriptor(
_associatedTypeDescriptor
) {
= &
; } };
#undef DEFINE_DESCRIPTION
#endif
}
namespace
{
namespace
{
class
;
}
namespace
{
class
;
class
;
class
:
public
,
public
virtual
reflection
::
description
::
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
protected
:
;
*
;
public
:
(
const
&
,
*
);
();
(
<
>
)
override
;
};
class
:
public
reflection
::
description
::
{
friend
class
;
typedef
reflection
::
description
::
;
protected
:
typedef
reflection
::
description
::
;
runtime
::
*
=
nullptr
;
CreateFunctionProxyInternal
(
const
&
)
override
;
void
(
runtime
::
*
);
public
:
(
bool
);
();
*
()
override
;
runtime
::
*
();
void
(
<
>
);
};
class
:
public
{
typedef
reflection
::
description
::
;
protected
:
(
const
&
,
collections
::
<
>&
)
override
;
public
:
= -
1
;
();
};
class
:
public
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
protected
:
(
const
&
,
collections
::
<
>&
)
override
;
public
:
= -
1
;
(
<
>
);
void
(
const
&
,
collections
::
<
>&
);
};
class
:
public
{
typedef
reflection
::
description
::
;
protected
:
(
const
&
,
collections
::
<
>&
)
override
;
public
:
= -
1
;
();
};
class
:
public
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
protected
:
(
const
&
,
collections
::
<
>&
)
override
;
public
:
(
<
>
);
};
class
:
public
{
typedef
reflection
::
description
::
;
protected
:
(
const
&
,
collections
::
<
>&
)
override
;
public
:
();
};
class
:
public
reflection
::
description
::
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
class
:
public
,
public
{
public
:
bool
=
true
;
<
>
;
(
<
>
)
:proxy(
)
{
}
bool
()
override
{
return
;
}
};
typedef
collections
::
<
*,
<
>>
;
class
:
public
{
public
:
;
};
static
const
wchar_t
*
EventRecordInternalPropertyName
;
protected
:
<
>
(
*
,
bool
);
<
>
(
*
,
<
>
)
override
;
bool
(
*
,
<
>
)
override
;
void
(
*
,
<
>
)
override
;
<
>
()
override
;
public
:
(
*
,
const
&
);
();
*
()
override
;
void
(
<
>
);
};
class
:
public
reflection
::
description
::
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
collections
::
<
*,
>
;
class
:
public
{
public
:
;
};
static
const
wchar_t
*
FieldRecordInternalPropertyName
;
protected
:
<
>
(
*
,
bool
);
(
const
&
)
override
;
void
(
&
,
const
&
)
override
;
public
:
(
*
,
const
&
);
();
*
()
override
;
void
(
<
>
);
};
class
:
public
reflection
::
description
::
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
protected
:
(
const
&
)
override
;
void
(
&
,
const
&
)
override
;
public
:
(
*
,
const
&
);
();
*
()
override
;
void
(
<
>
);
};
class
:
public
reflection
::
description
::
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
public
:
(
*
,
const
&
);
();
void
(
*
);
void
(
*
);
void
(
*
);
};
struct
:
reflection
::
description
::
{
;
(
const
&
);
};
template
<
typename
>
class
:
private
,
public
{
public
:
(
reflection
::
description
::
,
const
&
)
:
(
)
,
(
,
this
)
{
}
const
&
()
override
{
return
;
}
};
class
:
public
<
reflection
::
description
::
>
{
protected
:
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
collections
::
<
*>
;
protected
:
runtime
::
*
=
nullptr
;
bool
=
false
;
;
void
(
runtime
::
*
,
*
);
void
(
runtime
::
*
);
void
()
override
;
public
:
(
,
const
&
);
();
runtime
::
*
();
const
&
();
void
(
*
);
void
(
const
&
,
<
>
);
void
(
<
>
);
void
(
<
>
);
void
(
<
>
);
void
(
<
>
);
void
(
<
>
);
};
class
:
public
{
friend
class
;
public
:
= -
1
;
(
const
&
);
();
};
class
:
public
{
friend
class
;
public
:
(
const
&
);
();
};
class
:
public
<
reflection
::
description
::
>
{
using
=
collections
::
<
,
<
>>;
using
=
reflection
::
description
::
;
using
=
reflection
::
description
::
;
using
=
reflection
::
description
::
;
protected
:
class
:
public
,
public
virtual
{
using
=
reflection
::
description
::
;
protected
:
*
;
public
:
(
*
);
()
override
;
::
(
const
&
,
const
&
)
override
;
};
protected
:
;
public
:
(
const
&
);
();
()
override
;
*
(
)
override
;
bool
(
const
&
,
bool
)
override
;
*
(
const
&
,
bool
)
override
;
void
(
<
>
);
};
class
:
public
<
reflection
::
description
::
>
{
using
=
collections
::
<
,
>;
using
=
reflection
::
description
::
;
using
=
reflection
::
description
::
;
using
=
reflection
::
description
::
;
using
=
reflection
::
description
::
;
protected
:
class
:
public
,
public
virtual
{
protected
:
*
;
public
:
(
*
);
()
override
;
::
(
const
&
,
const
&
)
override
;
};
class
:
public
,
public
virtual
{
protected
:
*
;
public
:
(
*
);
bool
()
override
;
()
override
;
(
)
override
;
(
)
override
;
(
)
override
;
(
)
override
;
(
const
& )
override
;
};
protected
:
;
public
:
(
bool
,
const
&
);
();
void
(
const
&
,
);
};
class
:
public
,
public
reflection
::
<
>
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
protected
:
*
=
nullptr
;
public
:
(
*
);
();
void
(
*
,
&
);
};
class
:
public
,
public
reflection
::
,
public
reflection
::
<
>
{
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
typedef
reflection
::
description
::
;
protected
:
<
>
;
public
:
(
*
,
<
>
,
collections
::
<
*>&
);
();
<
>
();
};
struct
{
using
=
collections
::
<
*,
reflection
::
description
::
>;
;
()
{
}
(
const
&
)
{
(
,
.
);
}
&
(
const
&
)
{
if
(
this
!= &
)
{
(
,
.
);
}
return
*
this
;
}
};
struct
{
=
0
;
};
class
:
public
,
public
reflection
::
description
::
,
public
reflection
::
<
>
{
protected
:
runtime
::
*
=
nullptr
;
public
:
collections
::
<
<
>>
;
collections
::
<
<
>>
;
collections
::
<
<
>>
;
collections
::
<
<
>>
;
runtime
::
*
();
void
(
runtime
::
*
);
void
(
reflection
::
description
::
*
)
override
;
void
(
reflection
::
description
::
*
)
override
;
};
}
}
}
#endif