in plugins/experimental/wasm/lib/src/null/null_plugin.cc [166:210]
void NullPlugin::getFunction(std::string_view function_name, WasmCallWord<2> *f) {
auto *plugin = this;
if (function_name == "main") {
*f = nullptr;
} else if (function_name == "proxy_on_vm_start") {
*f = [plugin](ContextBase *context, Word context_id, Word configuration_size) {
SaveRestoreContext saved_context(context);
return Word(static_cast<uint64_t>(plugin->onStart(context_id, configuration_size)));
};
} else if (function_name == "proxy_on_configure") {
*f = [plugin](ContextBase *context, Word context_id, Word configuration_size) {
SaveRestoreContext saved_context(context);
return Word(static_cast<uint64_t>(plugin->onConfigure(context_id, configuration_size)));
};
} else if (function_name == "proxy_validate_configuration") {
*f = [plugin](ContextBase *context, Word context_id, Word configuration_size) {
SaveRestoreContext saved_context(context);
return Word(
static_cast<uint64_t>(plugin->validateConfiguration(context_id, configuration_size)));
};
} else if (function_name == "proxy_on_request_trailers") {
*f = [plugin](ContextBase *context, Word context_id, Word trailers) -> Word {
SaveRestoreContext saved_context(context);
return Word(plugin->onRequestTrailers(context_id, trailers));
};
} else if (function_name == "proxy_on_request_metadata") {
*f = [plugin](ContextBase *context, Word context_id, Word elements) -> Word {
SaveRestoreContext saved_context(context);
return Word(plugin->onRequestMetadata(context_id, elements));
};
} else if (function_name == "proxy_on_response_trailers") {
*f = [plugin](ContextBase *context, Word context_id, Word trailers) -> Word {
SaveRestoreContext saved_context(context);
return Word(plugin->onResponseTrailers(context_id, trailers));
};
} else if (function_name == "proxy_on_response_metadata") {
*f = [plugin](ContextBase *context, Word context_id, Word elements) -> Word {
SaveRestoreContext saved_context(context);
return Word(plugin->onResponseMetadata(context_id, elements));
};
} else if (!wasm_vm_->integration()->getNullVmFunction(function_name, true, 2, this, f)) {
error("Missing getFunction for: " + std::string(function_name));
*f = nullptr;
}
}