void Entity::Serialize( Stream *stream, Repository* repo) const { if (GetMetaClass()->IsSerializable() == false) { vdLogError( "Unable to serialize an instance of type '%s': no serialization support!", GetMetaClass()->GetClassName().c_str() ); } repo->Serialize(stream, m_Parent); }
CodeGen::RValue CGObjCJit::GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, Selector Sel, const ObjCInterfaceDecl *Class, bool isCategoryImpl, llvm::Value *Receiver, bool IsClassMessage, const CodeGen::CallArgList &CallArgs, const ObjCMethodDecl *Method) { llvm::Value *ReceiverClass; if (IsClassMessage) if (isCategoryImpl) { ReceiverClass = GetClass(CGF, Class); } else { ReceiverClass = GetMetaClass(CGF.Builder, Class); } else { ReceiverClass = GetClass(CGF, Class->getSuperClass()); } return EmitMessageSend(CGF, Return, ResultType, Sel, Receiver, ReceiverClass, CallArgs, Method); }
vd::string Object::ToString() const { std::ostringstream oss; oss << GetMetaClass()->GetIdentifier().ToString(); oss << "[unknown]"; return oss.str(); }
CodeGen::RValue CGObjCJit::GenerateMessageSend(CodeGen::CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, Selector Sel, llvm::Value *Receiver, const CallArgList &CallArgs, const ObjCInterfaceDecl *Class, const ObjCMethodDecl *Method) { llvm::Value *ReceiverObj = CGF.Builder.CreateBitCast(Receiver, ObjCTypes.ObjectPtrTy); llvm::Value *ReceiverClass; if (Class) { ReceiverClass = GetMetaClass(CGF.Builder, Class); } else { ReceiverClass = CGF.Builder.CreateCall(fn_object_getClass, ReceiverObj); } return EmitMessageSend(CGF, Return, ResultType, Sel, ReceiverObj, ReceiverClass, CallArgs, Method); }
//--------------------------------------------------------------------------- UEProperty::Info UEClassProperty::GetInfo() const { return Info::Create(PropertyType::Primitive, sizeof(void*), false, "class " + MakeValidName(GetMetaClass().GetNameCPP()) + "*"); }