1
This commit is contained in:
parent
36d83c3303
commit
b69451720a
84
a8/reflect.h
84
a8/reflect.h
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user