HDFS-7879. hdfs.dll does not export functions of the public libhdfs API. Contributed by Chris Nauroth.
This commit is contained in:
parent
c24448c27b
commit
d020544ef6
|
@ -780,6 +780,9 @@ Release 2.7.0 - UNRELEASED
|
|||
HDFS-7869. Inconsistency in the return information while performing rolling
|
||||
upgrade ( J.Andreina via vinayakumarb )
|
||||
|
||||
HDFS-7879. hdfs.dll does not export functions of the public libhdfs API.
|
||||
(Chris Nauroth via wheat9)
|
||||
|
||||
BREAKDOWN OF HDFS-7584 SUBTASKS AND RELATED JIRAS
|
||||
|
||||
HDFS-7720. Quota by Storage Type API, tools and ClientNameNode
|
||||
|
|
|
@ -27,7 +27,15 @@ include(../../../hadoop-common-project/hadoop-common/src/JNIFlags.cmake NO_POLIC
|
|||
function(add_dual_library LIBNAME)
|
||||
add_library(${LIBNAME} SHARED ${ARGN})
|
||||
add_library(${LIBNAME}_static STATIC ${ARGN})
|
||||
# Linux builds traditionally ship a libhdfs.a (static linking) and libhdfs.so
|
||||
# (dynamic linking). On Windows, we cannot use the same base name for both
|
||||
# static and dynamic, because Windows does not use distinct file extensions
|
||||
# for a statically linked library vs. a DLL import library. Both use the
|
||||
# .lib extension. On Windows, we'll build the static library as
|
||||
# hdfs_static.lib.
|
||||
if (NOT WIN32)
|
||||
set_target_properties(${LIBNAME}_static PROPERTIES OUTPUT_NAME ${LIBNAME})
|
||||
endif (NOT WIN32)
|
||||
endfunction(add_dual_library)
|
||||
|
||||
# Link both a static and a dynamic target against some libraries
|
||||
|
@ -105,11 +113,14 @@ else (WIN32)
|
|||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -O2")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_REENTRANT -D_GNU_SOURCE")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
|
||||
set(OS_DIR main/native/libhdfs/os/posix)
|
||||
set(OS_LINK_LIBRARIES pthread)
|
||||
set(OUT_DIR target/usr/local/lib)
|
||||
endif (WIN32)
|
||||
|
||||
add_definitions(-DLIBHDFS_DLL_EXPORT)
|
||||
|
||||
include_directories(
|
||||
${GENERATED_JAVAH}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
|
@ -150,7 +161,7 @@ add_executable(test_libhdfs_ops
|
|||
main/native/libhdfs/test/test_libhdfs_ops.c
|
||||
)
|
||||
target_link_libraries(test_libhdfs_ops
|
||||
hdfs
|
||||
hdfs_static
|
||||
${JAVA_JVM_LIBRARY}
|
||||
)
|
||||
|
||||
|
@ -158,7 +169,7 @@ add_executable(test_libhdfs_read
|
|||
main/native/libhdfs/test/test_libhdfs_read.c
|
||||
)
|
||||
target_link_libraries(test_libhdfs_read
|
||||
hdfs
|
||||
hdfs_static
|
||||
${JAVA_JVM_LIBRARY}
|
||||
)
|
||||
|
||||
|
@ -166,7 +177,7 @@ add_executable(test_libhdfs_write
|
|||
main/native/libhdfs/test/test_libhdfs_write.c
|
||||
)
|
||||
target_link_libraries(test_libhdfs_write
|
||||
hdfs
|
||||
hdfs_static
|
||||
${JAVA_JVM_LIBRARY}
|
||||
)
|
||||
|
||||
|
@ -196,7 +207,7 @@ add_executable(test_libhdfs_threaded
|
|||
${OS_DIR}/thread.c
|
||||
)
|
||||
target_link_libraries(test_libhdfs_threaded
|
||||
hdfs
|
||||
hdfs_static
|
||||
native_mini_dfs
|
||||
${OS_LINK_LIBRARIES}
|
||||
)
|
||||
|
@ -206,7 +217,7 @@ add_executable(test_libhdfs_zerocopy
|
|||
main/native/libhdfs/test/test_libhdfs_zerocopy.c
|
||||
)
|
||||
target_link_libraries(test_libhdfs_zerocopy
|
||||
hdfs
|
||||
hdfs_static
|
||||
native_mini_dfs
|
||||
${OS_LINK_LIBRARIES}
|
||||
)
|
||||
|
|
|
@ -24,6 +24,30 @@
|
|||
#include <stdint.h> /* for uint64_t, etc. */
|
||||
#include <time.h> /* for time_t */
|
||||
|
||||
/*
|
||||
* Support export of DLL symbols during libhdfs build, and import of DLL symbols
|
||||
* during client application build. A client application may optionally define
|
||||
* symbol LIBHDFS_DLL_IMPORT in its build. This is not strictly required, but
|
||||
* the compiler can produce more efficient code with it.
|
||||
*/
|
||||
#ifdef WIN32
|
||||
#ifdef LIBHDFS_DLL_EXPORT
|
||||
#define LIBHDFS_EXTERNAL __declspec(dllexport)
|
||||
#elif LIBHDFS_DLL_IMPORT
|
||||
#define LIBHDFS_EXTERNAL __declspec(dllimport)
|
||||
#else
|
||||
#define LIBHDFS_EXTERNAL
|
||||
#endif
|
||||
#else
|
||||
#ifdef LIBHDFS_DLL_EXPORT
|
||||
#define LIBHDFS_EXTERNAL __attribute__((visibility("default")))
|
||||
#elif LIBHDFS_DLL_IMPORT
|
||||
#define LIBHDFS_EXTERNAL __attribute__((visibility("default")))
|
||||
#else
|
||||
#define LIBHDFS_EXTERNAL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef O_RDONLY
|
||||
#define O_RDONLY 1
|
||||
#endif
|
||||
|
@ -77,6 +101,7 @@ extern "C" {
|
|||
* @param file The HDFS file
|
||||
* @return 1 if the file is open for read; 0 otherwise
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsFileIsOpenForRead(hdfsFile file);
|
||||
|
||||
/**
|
||||
|
@ -85,6 +110,7 @@ extern "C" {
|
|||
* @param file The HDFS file
|
||||
* @return 1 if the file is open for write; 0 otherwise
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsFileIsOpenForWrite(hdfsFile file);
|
||||
|
||||
struct hdfsReadStatistics {
|
||||
|
@ -107,6 +133,7 @@ extern "C" {
|
|||
* ENOTSUP. webhdfs, LocalFilesystem, and so forth may
|
||||
* not support read statistics.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsFileGetReadStatistics(hdfsFile file,
|
||||
struct hdfsReadStatistics **stats);
|
||||
|
||||
|
@ -115,6 +142,7 @@ extern "C" {
|
|||
*
|
||||
* @return the number of remote bytes read.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int64_t hdfsReadStatisticsGetRemoteBytesRead(
|
||||
const struct hdfsReadStatistics *stats);
|
||||
|
||||
|
@ -129,6 +157,7 @@ extern "C" {
|
|||
* statistics.
|
||||
* Errno will also be set to this code on failure.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsFileClearReadStatistics(hdfsFile file);
|
||||
|
||||
/**
|
||||
|
@ -136,6 +165,7 @@ extern "C" {
|
|||
*
|
||||
* @param stats The HDFS read statistics to free.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsFileFreeReadStatistics(struct hdfsReadStatistics *stats);
|
||||
|
||||
/**
|
||||
|
@ -147,6 +177,7 @@ extern "C" {
|
|||
* @return Returns a handle to the filesystem or NULL on error.
|
||||
* @deprecated Use hdfsBuilderConnect instead.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFS hdfsConnectAsUser(const char* nn, tPort port, const char *user);
|
||||
|
||||
/**
|
||||
|
@ -157,6 +188,7 @@ extern "C" {
|
|||
* @return Returns a handle to the filesystem or NULL on error.
|
||||
* @deprecated Use hdfsBuilderConnect instead.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFS hdfsConnect(const char* nn, tPort port);
|
||||
|
||||
/**
|
||||
|
@ -170,6 +202,7 @@ extern "C" {
|
|||
* @return Returns a handle to the filesystem or NULL on error.
|
||||
* @deprecated Use hdfsBuilderConnect instead.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFS hdfsConnectAsUserNewInstance(const char* nn, tPort port, const char *user );
|
||||
|
||||
/**
|
||||
|
@ -182,6 +215,7 @@ extern "C" {
|
|||
* @return Returns a handle to the filesystem or NULL on error.
|
||||
* @deprecated Use hdfsBuilderConnect instead.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFS hdfsConnectNewInstance(const char* nn, tPort port);
|
||||
|
||||
/**
|
||||
|
@ -196,6 +230,7 @@ extern "C" {
|
|||
* @param bld The HDFS builder
|
||||
* @return Returns a handle to the filesystem, or NULL on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFS hdfsBuilderConnect(struct hdfsBuilder *bld);
|
||||
|
||||
/**
|
||||
|
@ -203,6 +238,7 @@ extern "C" {
|
|||
*
|
||||
* @return The HDFS builder, or NULL on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
struct hdfsBuilder *hdfsNewBuilder(void);
|
||||
|
||||
/**
|
||||
|
@ -211,6 +247,7 @@ extern "C" {
|
|||
*
|
||||
* @param bld The HDFS builder
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsBuilderSetForceNewInstance(struct hdfsBuilder *bld);
|
||||
|
||||
/**
|
||||
|
@ -234,6 +271,7 @@ extern "C" {
|
|||
* hdfsBuilderSetNameNodePort. However, you must not pass the
|
||||
* port in two different ways.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsBuilderSetNameNode(struct hdfsBuilder *bld, const char *nn);
|
||||
|
||||
/**
|
||||
|
@ -242,6 +280,7 @@ extern "C" {
|
|||
* @param bld The HDFS builder
|
||||
* @param port The port.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsBuilderSetNameNodePort(struct hdfsBuilder *bld, tPort port);
|
||||
|
||||
/**
|
||||
|
@ -250,6 +289,7 @@ extern "C" {
|
|||
* @param bld The HDFS builder
|
||||
* @param userName The user name. The string will be shallow-copied.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsBuilderSetUserName(struct hdfsBuilder *bld, const char *userName);
|
||||
|
||||
/**
|
||||
|
@ -260,6 +300,7 @@ extern "C" {
|
|||
* @param kerbTicketCachePath The Kerberos ticket cache path. The string
|
||||
* will be shallow-copied.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsBuilderSetKerbTicketCachePath(struct hdfsBuilder *bld,
|
||||
const char *kerbTicketCachePath);
|
||||
|
||||
|
@ -271,6 +312,7 @@ extern "C" {
|
|||
*
|
||||
* @param bld The HDFS builder
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsFreeBuilder(struct hdfsBuilder *bld);
|
||||
|
||||
/**
|
||||
|
@ -284,6 +326,7 @@ extern "C" {
|
|||
*
|
||||
* @return 0 on success; nonzero error code otherwise.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsBuilderConfSetStr(struct hdfsBuilder *bld, const char *key,
|
||||
const char *val);
|
||||
|
||||
|
@ -298,6 +341,7 @@ extern "C" {
|
|||
* @return 0 on success; nonzero error code otherwise.
|
||||
* Failure to find the key is not an error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsConfGetStr(const char *key, char **val);
|
||||
|
||||
/**
|
||||
|
@ -310,6 +354,7 @@ extern "C" {
|
|||
* @return 0 on success; nonzero error code otherwise.
|
||||
* Failure to find the key is not an error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsConfGetInt(const char *key, int32_t *val);
|
||||
|
||||
/**
|
||||
|
@ -317,6 +362,7 @@ extern "C" {
|
|||
*
|
||||
* @param val A configuration string obtained from hdfsConfGetStr
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsConfStrFree(char *val);
|
||||
|
||||
/**
|
||||
|
@ -327,6 +373,7 @@ extern "C" {
|
|||
* Even if there is an error, the resources associated with the
|
||||
* hdfsFS will be freed.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsDisconnect(hdfsFS fs);
|
||||
|
||||
|
||||
|
@ -344,6 +391,7 @@ extern "C" {
|
|||
* default configured values.
|
||||
* @return Returns the handle to the open file or NULL on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFile hdfsOpenFile(hdfsFS fs, const char* path, int flags,
|
||||
int bufferSize, short replication, tSize blocksize);
|
||||
|
||||
|
@ -355,6 +403,7 @@ extern "C" {
|
|||
* ENOTSUP if the file does not support unbuffering
|
||||
* Errno will also be set to this value.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsUnbufferFile(hdfsFile file);
|
||||
|
||||
/**
|
||||
|
@ -367,6 +416,7 @@ extern "C" {
|
|||
* be freed at the end of this call, even if there was an I/O
|
||||
* error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsCloseFile(hdfsFS fs, hdfsFile file);
|
||||
|
||||
|
||||
|
@ -376,6 +426,7 @@ extern "C" {
|
|||
* @param path The path to look for
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsExists(hdfsFS fs, const char *path);
|
||||
|
||||
|
||||
|
@ -387,6 +438,7 @@ extern "C" {
|
|||
* @param desiredPos Offset into the file to seek into.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsSeek(hdfsFS fs, hdfsFile file, tOffset desiredPos);
|
||||
|
||||
|
||||
|
@ -396,6 +448,7 @@ extern "C" {
|
|||
* @param file The file handle.
|
||||
* @return Current offset, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tOffset hdfsTell(hdfsFS fs, hdfsFile file);
|
||||
|
||||
|
||||
|
@ -413,6 +466,7 @@ extern "C" {
|
|||
* and set errno to EINTR if data is temporarily unavailable,
|
||||
* but we are not yet at the end of the file.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tSize hdfsRead(hdfsFS fs, hdfsFile file, void* buffer, tSize length);
|
||||
|
||||
/**
|
||||
|
@ -424,6 +478,7 @@ extern "C" {
|
|||
* @param length The length of the buffer.
|
||||
* @return See hdfsRead
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tSize hdfsPread(hdfsFS fs, hdfsFile file, tOffset position,
|
||||
void* buffer, tSize length);
|
||||
|
||||
|
@ -436,6 +491,7 @@ extern "C" {
|
|||
* @param length The no. of bytes to write.
|
||||
* @return Returns the number of bytes written, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tSize hdfsWrite(hdfsFS fs, hdfsFile file, const void* buffer,
|
||||
tSize length);
|
||||
|
||||
|
@ -446,6 +502,7 @@ extern "C" {
|
|||
* @param file The file handle.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsFlush(hdfsFS fs, hdfsFile file);
|
||||
|
||||
|
||||
|
@ -456,6 +513,7 @@ extern "C" {
|
|||
* @param file file handle
|
||||
* @return 0 on success, -1 on error and sets errno
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsHFlush(hdfsFS fs, hdfsFile file);
|
||||
|
||||
|
||||
|
@ -467,6 +525,7 @@ extern "C" {
|
|||
* @param file file handle
|
||||
* @return 0 on success, -1 on error and sets errno
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsHSync(hdfsFS fs, hdfsFile file);
|
||||
|
||||
|
||||
|
@ -477,6 +536,7 @@ extern "C" {
|
|||
* @param file The file handle.
|
||||
* @return Returns available bytes; -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsAvailable(hdfsFS fs, hdfsFile file);
|
||||
|
||||
|
||||
|
@ -488,6 +548,7 @@ extern "C" {
|
|||
* @param dst The path of destination file.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsCopy(hdfsFS srcFS, const char* src, hdfsFS dstFS, const char* dst);
|
||||
|
||||
|
||||
|
@ -499,6 +560,7 @@ extern "C" {
|
|||
* @param dst The path of destination file.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsMove(hdfsFS srcFS, const char* src, hdfsFS dstFS, const char* dst);
|
||||
|
||||
|
||||
|
@ -511,6 +573,7 @@ extern "C" {
|
|||
* case of a file the recursive argument is irrelevant.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsDelete(hdfsFS fs, const char* path, int recursive);
|
||||
|
||||
/**
|
||||
|
@ -520,6 +583,7 @@ extern "C" {
|
|||
* @param newPath The path of the destination file.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsRename(hdfsFS fs, const char* oldPath, const char* newPath);
|
||||
|
||||
|
||||
|
@ -531,6 +595,7 @@ extern "C" {
|
|||
* @param bufferSize The length of user-buffer.
|
||||
* @return Returns buffer, NULL on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
char* hdfsGetWorkingDirectory(hdfsFS fs, char *buffer, size_t bufferSize);
|
||||
|
||||
|
||||
|
@ -541,6 +606,7 @@ extern "C" {
|
|||
* @param path The path of the new 'cwd'.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsSetWorkingDirectory(hdfsFS fs, const char* path);
|
||||
|
||||
|
||||
|
@ -551,6 +617,7 @@ extern "C" {
|
|||
* @param path The path of the directory.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsCreateDirectory(hdfsFS fs, const char* path);
|
||||
|
||||
|
||||
|
@ -561,6 +628,7 @@ extern "C" {
|
|||
* @param path The path of the file.
|
||||
* @return Returns 0 on success, -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsSetReplication(hdfsFS fs, const char* path, int16_t replication);
|
||||
|
||||
|
||||
|
@ -590,6 +658,7 @@ extern "C" {
|
|||
* @return Returns a dynamically-allocated array of hdfsFileInfo
|
||||
* objects; NULL on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFileInfo *hdfsListDirectory(hdfsFS fs, const char* path,
|
||||
int *numEntries);
|
||||
|
||||
|
@ -603,6 +672,7 @@ extern "C" {
|
|||
* @return Returns a dynamically-allocated hdfsFileInfo object;
|
||||
* NULL on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
hdfsFileInfo *hdfsGetPathInfo(hdfsFS fs, const char* path);
|
||||
|
||||
|
||||
|
@ -612,6 +682,7 @@ extern "C" {
|
|||
* objects.
|
||||
* @param numEntries The size of the array.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsFreeFileInfo(hdfsFileInfo *hdfsFileInfo, int numEntries);
|
||||
|
||||
/**
|
||||
|
@ -620,6 +691,7 @@ extern "C" {
|
|||
* @return -1 if there was an error (errno will be set), 0 if the file is
|
||||
* not encrypted, 1 if the file is encrypted.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsFileIsEncrypted(hdfsFileInfo *hdfsFileInfo);
|
||||
|
||||
|
||||
|
@ -635,6 +707,7 @@ extern "C" {
|
|||
* @return Returns a dynamically-allocated 2-d array of blocks-hosts;
|
||||
* NULL on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
char*** hdfsGetHosts(hdfsFS fs, const char* path,
|
||||
tOffset start, tOffset length);
|
||||
|
||||
|
@ -645,6 +718,7 @@ extern "C" {
|
|||
* objects.
|
||||
* @param numEntries The size of the array.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hdfsFreeHosts(char ***blockHosts);
|
||||
|
||||
|
||||
|
@ -656,6 +730,7 @@ extern "C" {
|
|||
*
|
||||
* @return Returns the default blocksize, or -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tOffset hdfsGetDefaultBlockSize(hdfsFS fs);
|
||||
|
||||
|
||||
|
@ -669,6 +744,7 @@ extern "C" {
|
|||
*
|
||||
* @return Returns the default blocksize, or -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tOffset hdfsGetDefaultBlockSizeAtPath(hdfsFS fs, const char *path);
|
||||
|
||||
|
||||
|
@ -677,6 +753,7 @@ extern "C" {
|
|||
* @param fs The configured filesystem handle.
|
||||
* @return Returns the raw-capacity; -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tOffset hdfsGetCapacity(hdfsFS fs);
|
||||
|
||||
|
||||
|
@ -685,6 +762,7 @@ extern "C" {
|
|||
* @param fs The configured filesystem handle.
|
||||
* @return Returns the total-size; -1 on error.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
tOffset hdfsGetUsed(hdfsFS fs);
|
||||
|
||||
/**
|
||||
|
@ -696,6 +774,7 @@ extern "C" {
|
|||
* @param group Group string. Set to NULL for 'no change'
|
||||
* @return 0 on success else -1
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsChown(hdfsFS fs, const char* path, const char *owner,
|
||||
const char *group);
|
||||
|
||||
|
@ -706,6 +785,7 @@ extern "C" {
|
|||
* @param mode the bitmask to set it to
|
||||
* @return 0 on success else -1
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsChmod(hdfsFS fs, const char* path, short mode);
|
||||
|
||||
/**
|
||||
|
@ -716,6 +796,7 @@ extern "C" {
|
|||
* @param atime new access time or -1 for no change
|
||||
* @return 0 on success else -1
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hdfsUtime(hdfsFS fs, const char* path, tTime mtime, tTime atime);
|
||||
|
||||
/**
|
||||
|
@ -728,6 +809,7 @@ extern "C" {
|
|||
* not be allocated. If NULL is returned, errno will
|
||||
* contain the error number.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
struct hadoopRzOptions *hadoopRzOptionsAlloc(void);
|
||||
|
||||
/**
|
||||
|
@ -739,6 +821,7 @@ extern "C" {
|
|||
*
|
||||
* @return 0 on success; -1 plus errno on failure.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hadoopRzOptionsSetSkipChecksum(
|
||||
struct hadoopRzOptions *opts, int skip);
|
||||
|
||||
|
@ -756,6 +839,7 @@ extern "C" {
|
|||
* instantiated;
|
||||
* -1 plus errno otherwise.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int hadoopRzOptionsSetByteBufferPool(
|
||||
struct hadoopRzOptions *opts, const char *className);
|
||||
|
||||
|
@ -765,6 +849,7 @@ extern "C" {
|
|||
* @param opts The options structure to free.
|
||||
* Any associated ByteBufferPool will also be freed.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hadoopRzOptionsFree(struct hadoopRzOptions *opts);
|
||||
|
||||
/**
|
||||
|
@ -790,6 +875,7 @@ extern "C" {
|
|||
* zero-copy read, and there was no ByteBufferPool
|
||||
* supplied.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
struct hadoopRzBuffer* hadoopReadZero(hdfsFile file,
|
||||
struct hadoopRzOptions *opts, int32_t maxLength);
|
||||
|
||||
|
@ -799,6 +885,7 @@ extern "C" {
|
|||
* @param buffer a buffer returned from readZero.
|
||||
* @return the length of the buffer.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
int32_t hadoopRzBufferLength(const struct hadoopRzBuffer *buffer);
|
||||
|
||||
/**
|
||||
|
@ -811,6 +898,7 @@ extern "C" {
|
|||
* @return a pointer to the start of the buffer. This will be
|
||||
* NULL when end-of-file has been reached.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
const void *hadoopRzBufferGet(const struct hadoopRzBuffer *buffer);
|
||||
|
||||
/**
|
||||
|
@ -820,12 +908,14 @@ extern "C" {
|
|||
* the same stream you called hadoopReadZero on.
|
||||
* @param buffer The buffer to release.
|
||||
*/
|
||||
LIBHDFS_EXTERNAL
|
||||
void hadoopRzBufferFree(hdfsFile file, struct hadoopRzBuffer *buffer);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#undef LIBHDFS_EXTERNAL
|
||||
#endif /*LIBHDFS_HDFS_H*/
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue