MCPcopy Create free account
hub / github.com/apple/foundationdb / setNetworkOptionInternal

Method setNetworkOptionInternal

fdbclient/MultiVersionTransaction.actor.cpp:2432–2502  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2430}
2431
2432void MultiVersionApi::setNetworkOptionInternal(FDBNetworkOptions::Option option, Optional<StringRef> value) {
2433 bool forwardOption = false;
2434
2435 auto itr = FDBNetworkOptions::optionInfo.find(option);
2436 if (itr != FDBNetworkOptions::optionInfo.end()) {
2437 TraceEvent("SetNetworkOption").detail("Option", itr->second.name);
2438 } else {
2439 TraceEvent("UnknownNetworkOption").detail("Option", option);
2440 throw invalid_option();
2441 }
2442
2443 if (option == FDBNetworkOptions::DISABLE_MULTI_VERSION_CLIENT_API) {
2444 validateOption(value, false, true);
2445 disableMultiVersionClientApi();
2446 } else if (option == FDBNetworkOptions::CALLBACKS_ON_EXTERNAL_THREADS) {
2447 validateOption(value, false, true);
2448 setCallbacksOnExternalThreads();
2449 } else if (option == FDBNetworkOptions::EXTERNAL_CLIENT_LIBRARY) {
2450 validateOption(value, true, false, false);
2451 addExternalLibrary(abspath(value.get().toString()), false);
2452 } else if (option == FDBNetworkOptions::EXTERNAL_CLIENT_DIRECTORY) {
2453 validateOption(value, true, false, false);
2454 addExternalLibraryDirectory(value.get().toString());
2455 } else if (option == FDBNetworkOptions::DISABLE_LOCAL_CLIENT) {
2456 validateOption(value, false, true);
2457 disableLocalClient();
2458 } else if (option == FDBNetworkOptions::SUPPORTED_CLIENT_VERSIONS) {
2459 ASSERT(value.present());
2460 setSupportedClientVersions(value.get());
2461 } else if (option == FDBNetworkOptions::EXTERNAL_CLIENT) {
2462 MutexHolder holder(lock);
2463 ASSERT(!value.present() && !networkStartSetup);
2464 externalClient = true;
2465 bypassMultiClientApi = true;
2466 forwardOption = true;
2467 } else if (option == FDBNetworkOptions::CLIENT_THREADS_PER_VERSION) {
2468 MutexHolder holder(lock);
2469 validateOption(value, true, false, false);
2470 if (networkStartSetup) {
2471 throw invalid_option();
2472 }
2473#if defined(__unixish__)
2474 threadCount = extractIntOption(value, 1, 1024);
2475#else
2476 // multiple client threads are not supported on windows.
2477 threadCount = extractIntOption(value, 1, 1);
2478#endif
2479 } else if (option == FDBNetworkOptions::CLIENT_TMP_DIR) {
2480 validateOption(value, true, false, false);
2481 tmpDir = abspath(value.get().toString());
2482 } else if (option == FDBNetworkOptions::FUTURE_VERSION_CLIENT_LIBRARY) {
2483 validateOption(value, true, false, false);
2484 addExternalLibrary(abspath(value.get().toString()), true);
2485 } else {
2486 forwardOption = true;
2487 }
2488
2489 if (forwardOption) {

Callers

nothing calls this directly

Calls 12

TraceEventClass · 0.85
validateOptionFunction · 0.85
detailMethod · 0.80
emplace_backMethod · 0.80
extractIntOptionFunction · 0.70
getMethod · 0.65
abspathFunction · 0.50
findMethod · 0.45
endMethod · 0.45
toStringMethod · 0.45
presentMethod · 0.45
setNetworkOptionMethod · 0.45

Tested by

no test coverage detected