MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / makeFunction

Method makeFunction

src/jrd/ExtEngineManager.cpp:1193–1213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1191 }
1192
1193 IExternalFunction* makeFunction(ThrowStatusExceptionWrapper* status, IExternalContext* context,
1194 IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) override
1195 {
1196 const char* packageName = metadata->getPackage(status);
1197 const char* routineName = metadata->getName(status);
1198
1199 for (auto& package : SystemPackage::get())
1200 {
1201 if (strcmp(package.name, packageName) == 0)
1202 {
1203 for (auto& routine : package.functions)
1204 {
1205 if (strcmp(routine.name, routineName) == 0)
1206 return routine.factory(status, context, metadata, inBuilder, outBuilder);
1207 }
1208 }
1209 }
1210
1211 fb_assert(false);
1212 return nullptr;
1213 }
1214
1215 IExternalProcedure* makeProcedure(ThrowStatusExceptionWrapper* status, IExternalContext* context,
1216 IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) override

Callers

nothing calls this directly

Calls 4

factoryMethod · 0.80
getFunction · 0.50
getPackageMethod · 0.45
getNameMethod · 0.45

Tested by

no test coverage detected