cas::Value Object::GetMemberValue(cas::IMember* member) { assert(is_clas); assert(member); Member* m = (Member*)member; assert(m->type == clas->type); cas::Value v; v.type = m->GetType(); clas->copy_data(m->offset, clas->type->module_proxy->GetType(m->vartype.type)->size, v.int_value); return v; }
cas::Value Object::GetMemberValueRef(cas::IMember* member) { assert(is_clas); assert(member); Member* m = (Member*)member; assert(m->type == clas->type); cas::Value v; v.type = m->GetType(); v.type.is_ref = true; v.int_value = (int)clas->data(m->offset); return v; }
void Member::PrintMemberInfo() const { const int NAME_WIDTH = 26; const int ID_WIDTH = 7; const int TYPE_WIDTH = 17; const int DATE_WIDTH = 18; Member* memberPtr; memberPtr = head; cout << left; cout << "Bulk Club Members\n" << "-----------------\n\n"; cout << setw(NAME_WIDTH) << "Member Name" << setw(ID_WIDTH) << "ID" << setw(TYPE_WIDTH) << "Membership Type" << setw(DATE_WIDTH) << "Expiration Date" << endl; cout << setw(NAME_WIDTH) << "-----------" << setw(ID_WIDTH) << "------ " << setw(TYPE_WIDTH) << "---------------" << setw(DATE_WIDTH) << "---------------" << endl; while(memberPtr != NULL) { cout << left; cout << setw(NAME_WIDTH) << memberPtr->GetName() << setw(ID_WIDTH) << memberPtr->GetNum() << setw(TYPE_WIDTH) << memberPtr->GetType(); memberPtr->date.DisplayDate(); cout << right; memberPtr = memberPtr->next; } }