This commit is contained in:
aozhiwei 2022-12-26 16:22:19 +08:00
parent 36d83c3303
commit b69451720a

View File

@ -73,56 +73,21 @@ namespace a8
fieldnum_ = fieldnum;
}
a8::reflect::Field* GetDeclaredFields()
{
return fields_;
}
Field* GetFieldByName(const std::string& name)
{
for (int i = 0; i < FieldNum(); ++i) {
if (name == fields_[i].field_name) {
return &fields_[i];
}
}
return nullptr;
}
int FieldNum()
{
return fieldnum_;
}
int ClassId()
{
return class_id_;
}
int Tag()
{
return tag_;
}
a8::reflect::Field* GetDeclaredFields() { return fields_; }
int FieldNum() { return fieldnum_; }
int ClassId() { return class_id_; }
int Tag() { return tag_; }
const char* ClassName() { return class_name_; }
Field* GetFieldByName(const std::string& name);
long long GetFieldValueAsInt64(a8::reflect::Field* field, char* p);
std::string GetFieldValueAsString(a8::reflect::Field* field, char* p);
void SetSimpleField(
int fieldidx,
const char* fieldname,
int type,
int offset
)
{
SetField(fieldidx,
fieldname,
type,
a8::reflect::EST_SIMPLE,
offset,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr);
}
);
void SetField(int fieldidx,
const char* fieldname,
int type,
@ -134,35 +99,8 @@ namespace a8
int (*size)(void*),
void (*for_each)(a8::reflect::Field*, void*, void*, FIELD_FOR_EACH_FUNC),
char* (*push_back)(void*)
)
{
a8::reflect::Field *p = fields_ + fieldidx;
p->field_name = fieldname;
p->type = type;
p->subtype = subtype;
p->offset = offset;
p->pp_generic_class = pp_generic_class;
p->create = create;
p->destroy = destroy;
p->size = size;
p->for_each = for_each;
p->push_back = push_back;
}
int GetFieldIdx(int offset)
{
for (int i = 0; i < fieldnum_; i++) {
if (fields_[i].offset == offset) {
return i;
}
}
return -1;
}
const char* ClassName()
{
return class_name_;
}
);
int GetFieldIdx(int offset);
private:
int class_id_ = 0;
int tag_ = 0;