#ifndef VCZH_WORKFLOW_RUNTIME_WFRUNTIMEDEBUGGER
#define VCZH_WORKFLOW_RUNTIME_WFRUNTIMEDEBUGGER
#include "WfRuntimeAssembly.h"
#ifdef VCZH_DESCRIPTABLEOBJECT_WITH_METADATA
namespace
{
namespace
{
namespace
{
class
;
class
;
class
;
class
;
class
:
public
virtual
{
public
:
virtual
bool
(
*
) =
0
;
virtual
void
(
*
,
bool
) =
0
;
};
struct
{
enum
{
,
,
,
,
,
,
,
,
,
,
};
= -
1
;
bool
=
false
;
bool
=
false
;
<
>
;
;
*
=
nullptr
;
union
{
= -
1
;
;
};
reflection
::
*
=
nullptr
;
union
{
reflection
::
description
::
*
=
nullptr
;
reflection
::
description
::
*
;
reflection
::
description
::
*
;
reflection
::
description
::
*
;
};
static
(
*
,
);
static
(
*
,
);
static
(
*
,
);
static
(
reflection
::
*
,
reflection
::
description
::
*
);
static
(
reflection
::
*
,
reflection
::
description
::
*
);
static
(
reflection
::
*
,
reflection
::
description
::
*
);
static
(
reflection
::
*
,
reflection
::
description
::
*
);
static
(
reflection
::
*
,
reflection
::
description
::
*
);
static
(
reflection
::
*
,
reflection
::
description
::
*
);
static
(
reflection
::
description
::
*
);
};
class
:
public
virtual
{
public
:
virtual
void
(
*
) =
0
;
virtual
void
(
*
) =
0
;
virtual
bool
(
*
,
) =
0
;
virtual
bool
(
*
,
) =
0
;
virtual
bool
(
*
,
) =
0
;
virtual
bool
(
reflection
::
*
,
reflection
::
description
::
*
) =
0
;
virtual
bool
(
reflection
::
*
,
reflection
::
description
::
*
) =
0
;
virtual
bool
(
reflection
::
*
,
reflection
::
description
::
*
) =
0
;
virtual
bool
(
reflection
::
*
,
reflection
::
description
::
*
) =
0
;
virtual
bool
(
reflection
::
*
,
reflection
::
description
::
*
) =
0
;
virtual
bool
(
reflection
::
*
,
reflection
::
description
::
*
) =
0
;
virtual
bool
(
reflection
::
description
::
*
) =
0
;
virtual
bool
(
<
>
) =
0
;
virtual
bool
() =
0
;
};
class
:
public
,
protected
virtual
{
friend
*
(
*
);
typedef
collections
::
<
>
;
typedef
collections
::
<
*>
;
typedef
<
*,
>
;
typedef
<
reflection
::
*,
reflection
::
description
::
*>
;
typedef
<
reflection
::
*,
reflection
::
description
::
*>
;
typedef
<
reflection
::
*,
reflection
::
description
::
*>
;
typedef
reflection
::
description
::
*
;
typedef
collections
::
<
,
>
;
typedef
collections
::
<
,
>
;
typedef
collections
::
<
,
>
;
typedef
collections
::
<
,
>
;
typedef
collections
::
<
,
>
;
public
:
enum
{
,
,
,
,
,
,
,
};
enum
{
,
,
,
};
struct
{
= -
1
;
*
=
nullptr
;
= -
1
;
= -
1
;
bool
(
const
&
,
bool
);
bool
(
const
&
,
bool
);
};
static
const
= -
1
;
static
const
= -
2
;
protected
:
;
collections
::
<
>
;
volatile
bool
=
false
;
volatile
bool
=
false
;
;
volatile
=
;
volatile
=
;
volatile
=
;
bool
=
true
;
;
;
;
;
;
;
;
;
;
;
;
virtual
void
();
virtual
void
();
virtual
void
();
MakeCurrentInstructionLocation
();
template
<
typename
>
bool
(
const
&
,
collections
::
<
,
>&
);
bool
(
const
&
,
bool
,
);
void
(
*
)
override
;
void
(
*
)
override
;
bool
(
*
,
)
override
;
bool
(
*
,
)
override
;
bool
(
*
,
)
override
;
bool
(
reflection
::
*
,
reflection
::
description
::
*
)
override
;
bool
(
reflection
::
*
,
reflection
::
description
::
*
)
override
;
bool
(
reflection
::
*
,
reflection
::
description
::
*
)
override
;
bool
(
reflection
::
*
,
reflection
::
description
::
*
)
override
;
bool
(
reflection
::
*
,
reflection
::
description
::
*
)
override
;
bool
(
reflection
::
*
,
reflection
::
description
::
*
)
override
;
bool
(
reflection
::
description
::
*
)
override
;
bool
(
<
>
)
override
;
bool
()
override
;
public
:
();
();
(
const
&
);
(
*
,
,
,
bool
=
true
);
();
bool
(
);
const
&
(
);
bool
(
);
bool
(
,
bool
);
bool
();
void
(
bool
);
bool
();
bool
();
bool
();
bool
(
bool
=
true
);
bool
(
bool
=
true
);
();
();
GetLastActivatedBreakPoint
();
const
&
();
*
();
const
parsing
::
& (
bool
=
true
,
* =
nullptr
,
= -
1
);
reflection
::
description
::
(
const
&
,
*
=
nullptr
,
= -
1
);
};
extern
*
();
extern
*
(
*
);
extern
<
>
GetDebuggerForCurrentThread
();
extern
void
SetDebuggerForCurrentThread
(
<
>
);
}
}
}
#endif
#endif