team-10/env/Lib/site-packages/pyarrow/include/arrow/filesystem/filesystem_library.h
2025-08-02 07:34:44 +02:00

39 lines
1.7 KiB
C++

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
#pragma once
#include "arrow/filesystem/filesystem.h"
namespace arrow::fs {
extern "C" {
// ARROW_FORCE_EXPORT ensures this function's visibility is
// _declspec(dllexport)/[[gnu::visibility("default")]] even when
// this header is #included by a non-arrow source, as in a third
// party filesystem implementation.
ARROW_FORCE_EXPORT void* arrow_filesystem_get_registry() {
// In the case where libarrow is linked statically both to the executable and to a
// dynamically loaded filesystem implementation library, the library contains a
// duplicate definition of the registry into which the library's instances of
// FileSystemRegistrar insert their factories. This function is made accessible to
// dlsym/GetProcAddress to enable detection of such duplicate registries and merging
// into the registry accessible to the executable.
return internal::GetFileSystemRegistry();
}
}
} // namespace arrow::fs