diff --git a/a8/reflect.h b/a8/reflect.h index 4da1f01..7ce6539 100644 --- a/a8/reflect.h +++ b/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;