feat update sled

This commit is contained in:
tqcq 2024-03-05 11:48:41 +08:00
parent 9540ca05ed
commit 19cdaa8e9b
2 changed files with 47 additions and 48 deletions

2
3rdparty/sled vendored

@ -1 +1 @@
Subproject commit 5900bdf0f6adf9b01b7e6d3844d4ef1e4b3009c7 Subproject commit 0ef5b929c2e222906b33791ec03a23c24a0e4a84

View File

@ -4,11 +4,12 @@
/** /**
* Class * Class
**/ **/
test::Test::Test_Class::Test_Class() : ::meta::reflection::Class("test::Test", nullptr) {} test::Test::Test_Class::Test_Class()
: ::meta::reflection::Class("test::Test", nullptr)
void
test::Test::Test_Class::Register()
{ {
}
void test::Test::Test_Class::Register() {
auto self = new test::Test::Test_Class(); auto self = new test::Test::Test_Class();
auto clz = std::shared_ptr<::meta::reflection::Class>(self); auto clz = std::shared_ptr<::meta::reflection::Class>(self);
// self->AddBaseClassProxy(); // self->AddBaseClassProxy();
@ -21,71 +22,69 @@ test::Test::Test_Class::Register()
::meta::reflection::Registry::Instance()->RegisterClass(clz); ::meta::reflection::Registry::Instance()->RegisterClass(clz);
} }
void test::Test::Test_Class::AddBaseClassProxy(std::shared_ptr<::meta::reflection::Class> base) {
void
test::Test::Test_Class::AddBaseClassProxy(std::shared_ptr<::meta::reflection::Class> base)
{
AddBaseClass(base); AddBaseClass(base);
} }
void test::Test::Test_Class::AddMethodProxy(std::shared_ptr<::meta::reflection::Method> method) {
void
test::Test::Test_Class::AddMethodProxy(std::shared_ptr<::meta::reflection::Method> method)
{
AddMethod(method); AddMethod(method);
} }
void test::Test::Test_Class::AddFieldProxy(std::shared_ptr<::meta::reflection::Field> field) {
void
test::Test::Test_Class::AddFieldProxy(std::shared_ptr<::meta::reflection::Field> field)
{
AddField(field); AddField(field);
} }
/** /**
* Field * Field
**/ **/
test::Test::Test_Field::Test_Field(const std::string &name, test::Test::Test_Field::Test_Field(
std::shared_ptr<::meta::reflection::Class> parent) const std::string& name,
: ::meta::reflection::Field(name, parent) std::shared_ptr<::meta::reflection::Class> parent)
{} : ::meta::reflection::Field(name, parent) {}
::meta::reflection::any ::meta::reflection::any test::Test::Test_Field::GetImpl(void* instance) const {
test::Test::Test_Field::GetImpl(void *instance) const ::test::Test* obj = (::test::Test*)instance;
{
::test::Test *obj = (::test::Test *) instance;
if (strcmp(Name().c_str(), "length_") == 0) { return obj->length_; } if (strcmp(Name().c_str(), "length_") == 0) {
if (strcmp(Name().c_str(), "size_") == 0) { return obj->size_; } return obj->length_;
}
if (strcmp(Name().c_str(), "size_") == 0) {
return obj->size_;
}
return ::meta::reflection::any{}; return ::meta::reflection::any{};
} }
void void test::Test::Test_Field::SetImpl(void* instance, const ::meta::reflection::any& value) const {
test::Test::Test_Field::SetImpl(void *instance, const ::meta::reflection::any &value) const ::test::Test* obj = (::test::Test*)instance;
{ if(strcmp(Name().c_str(), "length_") == 0) { obj->length_ = ::meta::reflection::any_cast<int>(value);}
::test::Test *obj = (::test::Test *) instance; if(strcmp(Name().c_str(), "size_") == 0) { obj->size_ = ::meta::reflection::any_cast<int>(value);}
if (strcmp(Name().c_str(), "length_") == 0) {
obj->length_ = ::meta::reflection::any_cast<int>(value);
}
if (strcmp(Name().c_str(), "size_") == 0) {
obj->size_ = ::meta::reflection::any_cast<int>(value);
}
} }
/** /**
* Method * Method
**/ **/
test::Test::Test_Method::Test_Method(const std::string &name, test::Test::Test_Method::Test_Method(
std::shared_ptr<::meta::reflection::Class> parent) const std::string& name,
: ::meta::reflection::Method(name, parent) std::shared_ptr<::meta::reflection::Class> parent)
{} : ::meta::reflection::Method(name, parent) {}
::meta::reflection::any ::meta::reflection::any test::Test::Test_Method::InvokeImpl(void* instance, const std::vector<::meta::reflection::any> &params) const {
test::Test::Test_Method::InvokeImpl(void *instance, ::test::Test* obj = (::test::Test*)instance;
const std::vector<::meta::reflection::any> &params) const
{
::test::Test *obj = (::test::Test *) instance;
if (strcmp(Name().c_str(), "size") == 0) { return obj->size(); } if (strcmp(Name().c_str(), "size") == 0) {
if (strcmp(Name().c_str(), "length") == 0) { return obj->length(); } return
obj->
size(
);
}
if (strcmp(Name().c_str(), "length") == 0) {
return
obj->
length(
);
}
return ::meta::reflection::any{}; return ::meta::reflection::any{};
} }