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

Method makeProcedure

src/jrd/ExtEngineManager.cpp:1215–1235  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1213 }
1214
1215 IExternalProcedure* makeProcedure(ThrowStatusExceptionWrapper* status, IExternalContext* context,
1216 IRoutineMetadata* metadata, IMetadataBuilder* inBuilder, IMetadataBuilder* outBuilder) override
1217 {
1218 const char* packageName = metadata->getPackage(status);
1219 const char* routineName = metadata->getName(status);
1220
1221 for (auto& package : SystemPackage::get())
1222 {
1223 if (strcmp(package.name, packageName) == 0)
1224 {
1225 for (auto& routine : package.procedures)
1226 {
1227 if (strcmp(routine.name, routineName) == 0)
1228 return routine.factory(status, context, metadata, inBuilder, outBuilder);
1229 }
1230 }
1231 }
1232
1233 fb_assert(false);
1234 return nullptr;
1235 }
1236
1237 IExternalTrigger* makeTrigger(ThrowStatusExceptionWrapper* status, IExternalContext* context,
1238 IRoutineMetadata* metadata, IMetadataBuilder* fieldsBuilder) 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