FString ULinker::GetExportFullName(int32 ExportIndex, const TCHAR* FakeRoot,bool bResolveForcedExports/*=false*/) { FPackageIndex ClassIndex = ExportMap[ExportIndex].ClassIndex; FName ClassName = ClassIndex.IsNull() ? FName(NAME_Class) : ImpExp(ClassIndex).ObjectName; return ClassName.ToString() + TEXT(" ") + GetExportPathName(ExportIndex, FakeRoot, bResolveForcedExports); }
/** * Return the path name of the UObject represented by the specified import. * (can be used with StaticFindObject) * * @param ImportIndex index into the ImportMap for the resource to get the name for * * @return the path name of the UObject represented by the resource at ImportIndex */ FString ULinker::GetImportPathName(int32 ImportIndex) { ULinkerLoad* Loader = dynamic_cast<ULinkerLoad*>(this); FString Result; for (FPackageIndex LinkerIndex = FPackageIndex::FromImport(ImportIndex); !LinkerIndex.IsNull();) { FObjectResource Resource = ImpExp(LinkerIndex); bool bSubobjectDelimiter=false; if (Result.Len() > 0 && Loader != NULL && Loader->GetClassName(LinkerIndex) != NAME_Package && (Resource.OuterIndex.IsNull() || Loader->GetClassName(Resource.OuterIndex) == NAME_Package) ) { bSubobjectDelimiter = true; } // don't append a dot in the first iteration if ( Result.Len() > 0 ) { if ( bSubobjectDelimiter ) { Result = FString(SUBOBJECT_DELIMITER) + Result; } else { Result = FString(TEXT(".")) + Result; } } Result = Resource.ObjectName.ToString() + Result; LinkerIndex = Resource.OuterIndex; } return Result; }
/** * Return the path name of the UObject represented by the specified import. * (can be used with StaticFindObject) * * @param ImportIndex index into the ImportMap for the resource to get the name for * * @return the path name of the UObject represented by the resource at ImportIndex */ FString FPackageDependencyData::GetImportPathName(int32 ImportIndex) { FString Result; for (FPackageIndex LinkerIndex = FPackageIndex::FromImport(ImportIndex); !LinkerIndex.IsNull();) { FObjectResource* Resource = &ImpExp(LinkerIndex); bool bSubobjectDelimiter=false; // if this import is not a UPackage but this import's Outer is a UPackage, we need to use subobject notation if (Result.Len() > 0 && GetClassName(LinkerIndex) != NAME_Package) { if (Resource->OuterIndex.IsNull() || GetClassName(Resource->OuterIndex) == NAME_Package) { bSubobjectDelimiter = true; } } // don't append a dot in the first iteration if ( Result.Len() > 0 ) { if ( bSubobjectDelimiter ) { Result = FString(SUBOBJECT_DELIMITER) + Result; } else { Result = FString(TEXT(".")) + Result; } } Result = Resource->ObjectName.ToString() + Result; LinkerIndex = Resource->OuterIndex; } return Result; }
FName FLinkerTables::GetExportClassName( int32 i ) { if (ExportMap.IsValidIndex(i)) { FObjectExport& Export = ExportMap[i]; if( !Export.ClassIndex.IsNull() ) { return ImpExp(Export.ClassIndex).ObjectName; } } return NAME_Class; }
int CALC(FD_ImpExp)(void *Opt,void *Mod,PricingMethod *Met) { TYPEOPT* ptOpt=( TYPEOPT*)Opt; TYPEMOD* ptMod=( TYPEMOD*)Mod; double r,divid; r=log(1.+ptMod->R.Val.V_DOUBLE/100.); divid=log(1.+ptMod->Divid.Val.V_DOUBLE/100.); return ImpExp(ptOpt->EuOrAm.Val.V_BOOL,ptMod->S0.Val.V_PDOUBLE, ptOpt->PayOff.Val.V_NUMFUNC_1,ptOpt->Maturity.Val.V_DATE-ptMod->T.Val.V_DATE,r,divid,ptMod->Sigma.Val.V_SPDOUBLE,ptMod->Theta.Val.V_DOUBLE,ptMod->Kappa.Val.V_SPDOUBLE,Met->Par[0].Val.V_DOUBLE,Met->Par[1].Val.V_INT,Met->Par[2].Val.V_ENUM.value,&(Met->Res[0].Val.V_DOUBLE),&(Met->Res[1].Val.V_DOUBLE)); }
FName FPackageDependencyData::GetImportPackageName(int32 ImportIndex) { FName Result; for (FPackageIndex LinkerIndex = FPackageIndex::FromImport(ImportIndex); !LinkerIndex.IsNull();) { FObjectResource* Resource = &ImpExp(LinkerIndex); LinkerIndex = Resource->OuterIndex; if ( LinkerIndex.IsNull() ) { Result = Resource->ObjectName; } } return Result; }
FName FLinker::GetExportClassName( int32 i ) { if (ExportMap.IsValidIndex(i)) { FObjectExport& Export = ExportMap[i]; if( !Export.ClassIndex.IsNull() ) { return ImpExp(Export.ClassIndex).ObjectName; } #if WITH_EDITORONLY_DATA else if (GLinkerAllowDynamicClasses && Export.bDynamicClass) { static FName NAME_BlueprintGeneratedClass(TEXT("BlueprintGeneratedClass")); return NAME_BlueprintGeneratedClass; } #else else if (Export.bDynamicClass) { return GetDynamicTypeClassName(*GetExportPathName(i)); } #endif } return NAME_Class; }