void NullPlugin::getFunction()

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;
  }
}