2018-05-17 14:01:02 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "find_reflection_handler.h"
|
|
|
|
|
2018-05-17 13:50:03 +00:00
|
|
|
#include "lib_begin.h"
|
2018-05-17 14:01:02 +00:00
|
|
|
|
|
|
|
namespace cgv {
|
|
|
|
namespace reflect {
|
|
|
|
|
|
|
|
/** the debug reflection handler generates a string in the member \c output that
|
|
|
|
contains a complete description of the reflected instance */
|
|
|
|
class CGV_API debug_reflection_handler : public reflection_handler
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
std::string tab;
|
|
|
|
protected:
|
|
|
|
std::string extend_name(const std::string& name) const;
|
|
|
|
public:
|
|
|
|
/// contains the description in form of a string
|
|
|
|
std::string output;
|
|
|
|
///
|
|
|
|
int reflect_group_begin(GroupKind group_kind, const std::string& group_name, void* group_ptr, abst_reflection_traits* rt, unsigned grp_size);
|
|
|
|
///
|
|
|
|
void reflect_group_end(GroupKind group_kind);
|
|
|
|
///
|
|
|
|
bool reflect_member_void(const std::string& member_name, void* member_ptr, abst_reflection_traits* rt);
|
|
|
|
/// empty implementation
|
|
|
|
bool reflect_method_void(const std::string& method_name, method_interface* mi_ptr,
|
|
|
|
abst_reflection_traits* return_traits, const std::vector<abst_reflection_traits*>& param_value_traits);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-05-17 13:50:03 +00:00
|
|
|
#include <cgv/config/lib_end.h>
|