HBASE-19716 Remove hbase-native-client from branch-2

Signed-off-by: Josh Elser <elserj@apache.org>
Signed-off-by: Sean Busbey <busbey@apache.org>
This commit is contained in:
Michael Stack 2017-11-03 17:51:45 -07:00
parent 2485da1a60
commit 3a8e3704cd
No known key found for this signature in database
GPG Key ID: 9816C7FC8ACC93D2
56 changed files with 1 additions and 2653 deletions

View File

@ -151,12 +151,11 @@ diff --binary --recursive . "${unpack_dir}" >"${working_dir}/diff_output" || tru
cd "${working_dir}"
# expectation check largely based on HBASE-14952
echo "Checking against things we don't expect to include in the source tarball (git related, hbase-native-client, etc.)"
echo "Checking against things we don't expect to include in the source tarball (git related, etc.)"
cat >known_excluded <<END
Only in .: .git
Only in .: .gitattributes
Only in .: .gitignore
Only in .: hbase-native-client
END
if ! diff known_excluded diff_output >"${working_dir}/unexpected.diff" ; then
echo "Any output here are unexpected differences between the source artifact we'd make for an RC and the current branch."

View File

@ -1,38 +0,0 @@
# Compiled Object files
*.slo
*.lo
*.o
# Compiled Dynamic libraries
*.so
# Compiled Static libraries
*.lai
*.la
*.a
#python
*.pyc
# CMake Generated Files
CMakeCache.txt
CMakeFiles
Makefile
cmake_install.CMakeCache
cmake_install.cmake
install_manifest.txt
CTestTestfile.cmake
build
Testing
# Thirdparty dirs
thirdparty/glog-*
thirdparty/gtest-*
thirdparty/gtest
thirdparty/protobuf-*
thirdparty/libevent-*
thirdparty/libev-*
thirdparty/installed

View File

@ -1,157 +0,0 @@
# 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.
cmake_minimum_required(VERSION 2.6)
# generate CTest input files
enable_testing()
# where to find cmake modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake_modules")
# if no build build type is specified, default to debug builds
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif(NOT CMAKE_BUILD_TYPE)
STRING(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
set(CXX_COMMON_FLAGS "-Wall -Wextra -std=c++11")
set(C_COMMON_FLAGS "-Wall -Wextra -std=c11")
set(CXX_FLAGS_DEBUG "-ggdb -g")
set(C_FLAGS_DEBUG "-ggdb")
set(CXX_FLAGS_FASTDEBUG "-ggdb -O1")
set(C_FLAGS_FASTDEBUG "-ggdb -O1")
set(CXX_FLAGS_RELEASE "-O3 -g -DNDEBUG -Wno-strict-aliasing")
set(C_FLAGS_RELEASE "-O3 -g -DNDEBUG -Wno-strict-aliasing")
# if no build build type is specified, default to debug builds
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif(NOT CMAKE_BUILD_TYPE)
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
# Set compile flags based on the build type.
message("Configured for ${CMAKE_BUILD_TYPE} build (set with cmake -DCMAKE_BUILD_TYPE={release,debug,...})")
if ("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
set(CMAKE_CXX_FLAGS ${CXX_FLAGS_DEBUG})
set(CMAKE_C_FLAGS ${C_FLAGS_DEBUG})
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "FASTDEBUG")
set(CMAKE_CXX_FLAGS ${CXX_FLAGS_FASTDEBUG})
set(CMAKE_C_FLAGS ${C_FLAGS_FASTDEBUG})
elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "RELEASE")
set(CMAKE_CXX_FLAGS ${CXX_FLAGS_RELEASE})
set(CMAKE_C_FLAGS ${C_FLAGS_RELEASE})
else()
message(FATAL_ERROR "Unknown build type: ${CMAKE_BUILD_TYPE}")
endif ()
set(CMAKE_CXX_FLAGS "${CXX_COMMON_FLAGS} ${CMAKE_CXX_FLAGS}")
set(CMAKE_C_FLAGS "${C_COMMON_FLAGS} ${CMAKE_C_FLAGS}")
# set compile output directory
string(TOLOWER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_LOWERCASE)
set(BUILD_OUTPUT_ROOT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE_LOWERCASE}/")
# Link build/latest to the current build directory, to avoid developers
# accidentally running the latest debug build when in fact they're building
# release builds.
file(MAKE_DIRECTORY ${BUILD_OUTPUT_ROOT_DIRECTORY})
execute_process(COMMAND rm -f ${CMAKE_CURRENT_SOURCE_DIR}/build/latest)
execute_process(COMMAND ln -sf ${BUILD_OUTPUT_ROOT_DIRECTORY}
${CMAKE_CURRENT_SOURCE_DIR}/build/latest)
# where to put generated libraries
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${BUILD_OUTPUT_ROOT_DIRECTORY}")
set(ARCHIVE_OUTPUT_DIRECTORY "${BUILD_OUTPUT_ROOT_DIRECTORY}")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${BUILD_OUTPUT_ROOT_DIRECTORY}")
# where to put generated binaries
set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}")
include_directories(src)
#####################
# Third Party
#####################
# find boost headers and libs
set(Boost_DEBUG TRUE)
set(Boost_USE_MULTITHREADED ON)
find_package(Boost REQUIRED COMPONENTS thread system-mt)
include_directories(${Boost_INCLUDE_DIRS})
find_package(Protobuf REQUIRED)
include_directories(${PROTOBUF_INCLUDE_DIRS})
add_library(protobuf STATIC IMPORTED)
set_target_properties(protobuf PROPERTIES IMPORTED_LOCATION "${PROTOBUF_STATIC_LIBRARY}")
find_package(LibEv REQUIRED)
include_directories(${LIBEV_INCLUDE_DIR})
add_library(libev STATIC IMPORTED)
set(HBASE_LIBS
${PROTOBUF}
${LIBEV}
${Boost_LIBRARIES}
)
#########
# Testing Config
#########
# find GTest headers and libs
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIR})
add_library(gtest STATIC IMPORTED)
set_target_properties(gtest PROPERTIES IMPORTED_LOCATION "${GTEST_LIBS}")
set(HBASE_TEST_LIBS ${HBASE_LIBS} ${GTEST_LIBS})
set(HBASE_ASYNC_TEST_LIBS ${HBASE_LIBS} ${GTEST_LIBS} hbase-async)
set(HBASE_SYNC_TEST_LIBS ${HBASE_LIBS} ${GTEST_LIBS} hbase-sync)
function(ADD_HBASE_ASYNC_TEST TEST_NAME)
add_executable(${TEST_NAME} ${TEST_NAME}.cc)
target_link_libraries(${TEST_NAME} ${HBASE_ASYNC_TEST_LIBS})
add_test(${TEST_NAME} "${EXECUTABLE_OUTPUT_PATH}/${TEST_NAME}")
endfunction()
function(ADD_HBASE_SYNC_TEST TEST_NAME)
add_executable(${TEST_NAME} ${TEST_NAME}.cc)
target_link_libraries(${TEST_NAME} ${HBASE_ASYNC_TEST_LIBS})
add_test(${TEST_NAME} "${EXECUTABLE_OUTPUT_PATH}/${TEST_NAME}")
endfunction()
#####
# Actual project definition
#####
add_subdirectory(src/async)
add_subdirectory(src/sync)
add_subdirectory(src/core)
add_subdirectory(src/rpc)
add_library(hbase-async SHARED $<TARGET_OBJECTS:hcore> $<TARGET_OBJECTS:hasync>)
add_library(hbase-sync SHARED $<TARGET_OBJECTS:hcore> $<TARGET_OBJECTS:hsync>)

View File

@ -1,53 +0,0 @@
<!---
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.
-->
# hbase-native-client
Native client for HBase 0.96
This is a C library that implements a
HBase client. It's thread safe and libEv
based.
## Design Philosphy
Synchronous and Async versions will both be built
on the same foundation. The core foundation will
be C++. External users wanting a C library will
have to choose either async or sync. These
libraries will be thin veneers ontop of the C++.
We should try and follow pthreads example as much
as possible:
* Consistent naming.
* Opaque pointers as types so that binary compat is easy.
* Simple setup when the defaults are good.
* Attr structs when lots of paramters could be needed.
## Naming
All public C files will start with hbase_*.{h, cc}. This
is to keep naming conflicts to a minimum. Anything without
the hbase_ prefix is assumed to be implementation private.
All C apis and typedefs will be prefixed with hb_.
All typedefs end with _t.

View File

@ -1,41 +0,0 @@
#! /usr/bin/env bash
#
#/**
# * Copyright The Apache Software Foundation
# *
# * 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.
# */
set -e
set -x
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
source ${DIR}/hbase-client-env.sh
${DIR}/download-thirdparty.sh
${DIR}/build-thirdparty.sh
cd ${HBASE_DIR}
cmake .
make clean all
make test

View File

@ -1,64 +0,0 @@
#! /usr/bin/env bash
#
#/**
# * Copyright The Apache Software Foundation
# *
# * 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.
# */
set -x
set -e
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
source ${DIR}/../bin/hbase-client-env.sh
# On some systems, autotools installs libraries to lib64 rather than lib. Fix
# this by setting up lib64 as a symlink to lib. We have to do this step first
# to handle cases where one third-party library depends on another.
mkdir -p "${HBASE_PREFIX}/lib"
cd ${HBASE_PREFIX}
ln -sf lib "${HBASE_PREFIX}/lib64"
if [ ! -f gtest ]; then
cd ${HBASE_GTEST_DIR}
cmake .
make -j4
cd ..
ln -sf ${HBASE_GTEST_DIR} gtest
fi
if [ ! -f ${HBASE_PREFIX}/lib/libprotobuf.a ]; then
cd ${HBASE_PROTOBUF_DIR}
./configure --with-pic --disable-shared --prefix=${HBASE_PREFIX}
make -j4 install
fi
if [ ! -f ${HBASE_PREFIX}/lib/libev.a ]; then
cd ${HBASE_LIBEV_DIR}
./configure --with-pic --disable-shared --prefix=${HBASE_PREFIX}
make -j4 install
fi
echo "---------------------"
echo "Thirdparty dependencies built and installed into $HBASE_PREFIX successfully"

View File

@ -1,70 +0,0 @@
#! /usr/bin/env bash
#
#/**
# * Copyright The Apache Software Foundation
# *
# * 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.
# */
set -x
set -e
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
source ${DIR}/../bin/hbase-client-env.sh
mkdir -p ${HBASE_TP_DIR}
cd ${HBASE_TP_DIR}
if [ ! -d ${HBASE_GTEST_DIR} ]; then
echo "Fetching gtest"
wget -c http://googletest.googlecode.com/files/gtest-${HBASE_GTEST_VERSION}.zip
unzip gtest-${HBASE_GTEST_VERSION}.zip
rm gtest-${HBASE_GTEST_VERSION}.zip
fi
if [ ! -d ${HBASE_PROTOBUF_DIR} ]; then
echo "Fetching protobuf"
wget -c http://protobuf.googlecode.com/files/protobuf-${HBASE_PROTOBUF_VERSION}.tar.gz
tar xzf protobuf-${HBASE_PROTOBUF_VERSION}.tar.gz
rm protobuf-${HBASE_PROTOBUF_VERSION}.tar.gz
fi
if [ ! -d $HBASE_LIBEV_DIR ]; then
echo "Fetching libev"
wget -c http://dist.schmorp.de/libev/libev-${HBASE_LIBEV_VERSION}.tar.gz
tar zxf libev-${HBASE_LIBEV_VERSION}.tar.gz
rm -rf libev-${HBASE_LIBEV_VERSION}.tar.gz
fi
if [ ! -d $HBASE_PREFIX/bin/cpplint.py ]; then
echo "Fetching cpplint"
mkdir -p $HBASE_PREFIX/bin/
wget -O $HBASE_PREFIX/bin/cpplint.py http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py
chmod +x $HBASE_PREFIX/bin/cpplint.py
fi
echo "---------------"
echo "Thirdparty dependencies downloaded successfully"

View File

@ -1,47 +0,0 @@
#! /usr/bin/env bash
#
#/**
# * Copyright The Apache Software Foundation
# *
# * 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.
# */
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to
# resolve it relative to the path where
# the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
HBASE_DIR="${DIR}/../"
HBASE_TP_DIR="${HBASE_DIR}/thirdparty/"
HBASE_PREFIX=$HBASE_TP_DIR/installed
HBASE_GTEST_VERSION=1.7.0
HBASE_GTEST_DIR=$HBASE_TP_DIR/gtest-$HBASE_GTEST_VERSION
HBASE_PROTOBUF_VERSION=2.5.0
HBASE_PROTOBUF_DIR=$HBASE_TP_DIR/protobuf-$HBASE_PROTOBUF_VERSION
HBASE_LIBEV_VERSION=4.15
HBASE_LIBEV_DIR=$HBASE_TP_DIR/libev-$HBASE_LIBEV_VERSION
# use the compiled tools
export PATH=$HBASE_PREFIX/bin:$PATH

View File

@ -1,53 +0,0 @@
# 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.
set( GTEST_INCLUDE_SEARCH
${CMAKE_SOURCE_DIR}/thirdparty/gtest/include
)
set( GTEST_LIB_SEARCH
${CMAKE_SOURCE_DIR}/thirdparty/gtest
)
find_path(GTEST_INCLUDE
NAMES gtest/gtest.h
PATHS ${GTEST_INCLUDE_SEARCH}
NO_DEFAULT_PATH
)
find_library(GTEST_LIBRARY
NAMES gtest
PATHS ${GTEST_LIB_SEARCH}
NO_DEFAULT_PATH
)
find_library(GTEST_LIBRARY_MAIN
NAMES gtest_main
PATHS ${GTEST_LIB_SEARCH}
NO_DEFAULT_PATH
)
if (GTEST_INCLUDE AND GTEST_LIBRARY AND GTEST_LIBRARY_MAIN)
set(GTEST_LIBS ${GTEST_LIBRARY} ${GTEST_LIBRARY_MAIN})
set(GTEST_INCLUDE_DIR ${GTEST_INCLUDE})
set(GTEST_FOUND TRUE)
endif()
mark_as_advanced(
GTEST_INCLUDE_DIR
GTEST_LIBS
)

View File

@ -1,47 +0,0 @@
# 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.
set( LIBEV_INCLUDE_SEARCH
${CMAKE_SOURCE_DIR}/thirdparty/installed/include
)
set( LIBEV_LIB_SEARCH
${CMAKE_SOURCE_DIR}/thirdparty/installed/include
)
find_path(LIBEV_INCLUDE
NAMES ev++.h
PATHS ${LIBEV_INCLUDE_SEARCH}
NO_DEFAULT_PATH
)
find_library(LIBEV_LIBRARY
NAMES ev
PATHS ${LIBEV_LIB_SEARCH}
NO_DEFAULT_PATH
)
if (LIBEV_INCLUDE_PATH AND LIBEV_LIBRARY)
set(LIBEV_LIBS ${LIBEV_LIBRARY})
set(LIBEV_INCLUDE_DIR ${LIBEV_INCLUDE})
set(LIBEV_FOUND TRUE)
endif()
mark_as_advanced(
LIBEV_INCLUDE_DIR
LIBEV_LIBS
)

View File

@ -1,32 +0,0 @@
# 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.
set( ASYNC_SRC
hbase_admin.cc
hbase_client.cc
hbase_connection.cc
hbase_get.cc
hbase_mutations.cc
hbase_result.cc
hbase_scanner.cc
)
add_library(hasync OBJECT ${ASYNC_SRC})
ADD_HBASE_ASYNC_TEST(mutations-test)
ADD_HBASE_ASYNC_TEST(get-test)

View File

@ -1,59 +0,0 @@
/*
* 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.
*
*/
#include <pthread.h>
#include "gtest/gtest.h"
#include "async/hbase_get.h"
#include "async/hbase_client.h"
pthread_cond_t cv;
pthread_mutex_t mutex;
TEST(GetTest, TestPut) {
char tn[] = "T1";
hb_byte_t row[] = "ROW";
hb_client_t client = NULL;
hb_get_t get = NULL;
int32_t s1 = -1;
pthread_cond_init(&cv, NULL);
pthread_mutex_init(&mutex, NULL);
s1 = hb_client_create(&client, NULL);
EXPECT_EQ(0, s1);
s1 = hb_get_create(&get);
EXPECT_EQ(0, s1);
hb_get_set_table(get, tn, 2);
hb_get_set_row(get, row, 3);
/*
* TODO:
* This is currently a NO-OP as there is no CB.
*/
hb_get_send(client, get, NULL, NULL);
hb_client_destroy(client, NULL, NULL);
EXPECT_EQ(0, s1);
}

View File

@ -1,57 +0,0 @@
/*
* 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.
*
*/
#include "async/hbase_admin.h"
#include <stdlib.h>
#include <stdbool.h>
#include "core/admin.h"
#include "async/hbase_connection.h"
int32_t hb_admin_create(hb_admin_t* admin_ptr,
hb_connection_t connection) {
(*admin_ptr) = reinterpret_cast<hb_admin_t>(new Admin());
return 0;
}
/*
* Disconnect the admin releasing any internal objects
* or connections created in the background.
*/
int32_t hb_admin_destroy(hb_admin_t admin,
hb_admin_disconnection_cb cb, void * extra) {
if (cb)
cb(0, admin, extra);
free(admin);
return 0;
}
/*
* See if a table exists.
*/
int32_t hb_admin_table_exists(hb_admin_t admin,
char * name_space, size_t name_space_length,
char * table, size_t table_length,
hb_admin_table_exists_cb cb, void * extra) {
if (cb)
cb(0, admin, name_space, name_space_length,
table, table_length, true, extra);
return 0;
}

View File

@ -1,69 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_ADMIN_H_
#define ASYNC_HBASE_ADMIN_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
#include <stdbool.h>
#include "core/hbase_macros.h"
#include "async/hbase_connection.h"
typedef void (* hb_admin_disconnection_cb)( int32_t status,
hb_admin_t admin, void * extra);
typedef void (* hb_admin_table_exists_cb)(int32_t status, hb_admin_t admin,
char * name_space, size_t name_space_length,
char * table, size_t table_length, bool exsists, void * extra);
/**
* Create a new hb_admin.
* All fields are initialized to the defaults. If you want to set
* connection or other properties, set those before calling any
* RPC functions.
*/
HBASE_API int32_t hb_admin_create(hb_admin_t* admin_ptr,
hb_connection_t connection);
/*
* Disconnect the admin releasing any internal objects
* or connections created in the background.
*/
HBASE_API int32_t hb_admin_destroy(hb_admin_t admin,
hb_admin_disconnection_cb cb, void * extra);
/*
* See if a table exists.
*/
HBASE_API int32_t hb_admin_table_exists(hb_admin_t admin,
char * name_space, size_t name_space_length,
char * table, size_t table_length,
hb_admin_table_exists_cb cb, void * extra);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // ASYNC_HBASE_ADMIN_H_

View File

@ -1,47 +0,0 @@
/*
* 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.
*
*/
#include "async/hbase_client.h"
#include <pthread.h>
#include <stdlib.h>
#include <string.h>
#include "core/client.h"
#include "async/hbase_connection.h"
int32_t hb_client_create(hb_client_t* client_ptr,
hb_connection_t connection) {
(*client_ptr) = reinterpret_cast<hb_client_t>(new Client());
if (client_ptr == NULL)
return -1; // TODO(eclark): setup the errno file.
return 0;
}
int32_t hb_client_destroy(hb_client_t client,
hb_client_disconnection_cb cb, void * extra) {
if (client == NULL)
return -2;
if (cb) {
cb(0, client, extra);
}
free(client);
return 0;
}

View File

@ -1,60 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_CLIENT_H_
#define ASYNC_HBASE_CLIENT_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
/*
* Client disconnection callback typedef
*
* This is called after the connections are closed, but just
* before the client is freed.
*/
typedef void (* hb_client_disconnection_cb)( int32_t status,
hb_client_t client, void * extra);
/**
* Create an hb_client_t.
*
* If connection is null then all defaults will be used.
*/
HBASE_API int32_t hb_client_create(hb_client_t * client_ptr,
hb_connection_t connection);
/*
* Disconnect the client releasing any internal objects
* or connections created in the background.
*/
HBASE_API int32_t hb_client_destroy(hb_client_t client,
hb_client_disconnection_cb cb, void * extra);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // ASYNC_HBASE_CLIENT_H_

View File

@ -1,37 +0,0 @@
/*
* 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.
*
*/
#include "async/hbase_connection.h"
#include "core/connection.h"
#include "core/hbase_types.h"
extern "C" {
int32_t hb_connection_create(hb_connection_t * connection_ptr,
hb_connection_attr_t connection_attr) {
(*connection_ptr) = reinterpret_cast<hb_connection_t>(new Connection());
if ((*connection_ptr) == NULL)
return -1;
return 0;
}
int32_t hb_connection_destroy(hb_connection_t connection) {
free(connection);
return 0;
}
} // extern "C"

View File

@ -1,52 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_CONNECTION_H_
#define ASYNC_HBASE_CONNECTION_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
#include "core/hbase_connection_attr.h"
#include <stdlib.h>
/**
* Create an hb_connection.
*
* if connection_attr is null everything will be left as default
*/
HBASE_API int32_t hb_connection_create(hb_connection_t * connection_ptr,
hb_connection_attr_t connection_attr);
/**
* Destroy the connection and free all resources allocated at creation
* time.
*/
HBASE_API int32_t hb_connection_destroy(hb_connection_t connection);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // ASYNC_HBASE_CONNECTION_H_

View File

@ -1,23 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_ERRNO_H_
#define ASYNC_HBASE_ERRNO_H_
#endif // ASYNC_HBASE_ERRNO_H_

View File

@ -1,61 +0,0 @@
/*
* 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.
*
*/
#include "async/hbase_get.h"
#include <stdlib.h>
#include <string.h>
#include "core/get.h"
int32_t hb_get_create(hb_get_t * get_ptr) {
(*get_ptr) = reinterpret_cast<hb_get_t>(new Get());
if ((*get_ptr) == NULL) {
return -1;
}
return 0;
}
int32_t hb_get_destroy(hb_get_t get) {
free(get);
return 0;
}
int32_t hb_get_set_row(hb_get_t get, unsigned char * row,
size_t row_length) {
return 0;
}
int32_t hb_get_set_table(hb_get_t get,
char * table, size_t table_length) {
return 0;
}
int32_t hb_get_set_namespace(hb_get_t get,
char * name_space, size_t name_space_length) {
return 0;
}
int32_t hb_get_send(hb_client_t client,
hb_get_t get, hb_get_cb cb, void * extra) {
if (cb) {
cb(0, client, get, NULL, extra);
}
return 0;
}

View File

@ -1,73 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_GET_H_
#define ASYNC_HBASE_GET_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
/**
* Allocate a new get structure.
* Ownership passes to the caller.
*/
HBASE_API int32_t hb_get_create(hb_get_t * get_ptr);
/**
* Destroy and free a get structure.
*/
HBASE_API int32_t hb_get_destroy(hb_get_t get);
/**
* set the row of this get.
*/
HBASE_API int32_t hb_get_set_row(hb_get_t get, hb_byte_t * row,
size_t row_length);
/**
* Set the table.
*/
HBASE_API int32_t hb_get_set_table(hb_get_t get,
char * table, size_t table_length);
/**
* Set the namespace this get is targeting.
*/
HBASE_API int32_t hb_get_set_namespace(hb_get_t get,
char * name_space, size_t name_space_length);
/*
* get call back typedef.
*/
typedef void (* hb_get_cb)(int32_t status, hb_client_t client,
hb_get_t get, hb_result_t results, void * extra);
HBASE_API int32_t hb_get_send(hb_client_t client,
hb_get_t get, hb_get_cb cb, void * extra);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // ASYNC_HBASE_GET_H_

View File

@ -1,111 +0,0 @@
/*
* 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.
*
*/
#include "async/hbase_mutations.h"
#include <stdlib.h>
#include "core/hbase_types.h"
#include "core/mutation.h"
#include "core/put.h"
#include "core/delete.h"
#include "async/hbase_result.h"
extern "C" {
int32_t hb_put_create(hb_put_t* put_ptr) {
(*put_ptr) = reinterpret_cast<hb_put_t>(new Put());
return 0;
}
int32_t hb_delete_create(hb_delete_t * delete_ptr) {
(*delete_ptr) = reinterpret_cast<hb_delete_t>(new Delete());
return 0;
}
int32_t hb_increment_create(hb_increment_t * increment_ptr) {
return 0;
}
int32_t hb_append_create(hb_append_t * append_ptr) {
return 0;
}
int32_t hb_mutation_destroy(hb_mutation_t mutation) {
return 0;
}
HBASE_API int32_t hb_mutation_set_namespace(hb_mutation_t mutation,
char * name_space, size_t name_space_length) {
Mutation * m = reinterpret_cast<Mutation *>(mutation);
m->set_namespace(name_space, name_space_length);
return 0;
}
HBASE_API int32_t hb_mutation_set_table(hb_mutation_t mutation,
char * table, size_t table_length) {
Mutation * m = reinterpret_cast<Mutation *>(mutation);
m->set_namespace(table, table_length);
return 0;
}
int32_t hb_mutation_set_row(hb_mutation_t mutation,
unsigned char * rk, size_t row_length) {
Mutation * m = reinterpret_cast<Mutation *>(mutation);
m->set_row(rk, row_length);
return 0;
}
int32_t hb_mutation_set_durability(hb_mutation_t mutation,
hb_durability_type durability) {
Mutation * m = reinterpret_cast<Mutation *>(mutation);
m->set_durability(durability);
return 0;
}
int32_t hb_put_add_cell(hb_put_t put, hb_cell_t * cell) {
return 0;
}
int32_t hb_delete_add_col(hb_increment_t incr,
unsigned char * family, size_t family_length,
unsigned char * qual, size_t qual_length) {
return 0;
}
int32_t hb_increment_add_value(hb_increment_t incr,
unsigned char * family, size_t family_length,
unsigned char * qual, size_t qual_length,
int64_t ammount) {
return 0;
}
int32_t hb_append_add_cell(hb_append_t put, hb_cell_t * cell) {
return 0;
}
int32_t hb_mutation_send(hb_client_t client,
hb_mutation_t mutation, hb_mutation_cb cb,
void * extra) {
if (cb) {
cb(0, client, mutation, NULL, extra);
}
return 0;
}
} // extern "C"

View File

@ -1,119 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_MUTATIONS_H_
#define ASYNC_HBASE_MUTATIONS_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "core/hbase_types.h"
#include "async/hbase_result.h"
// Creation methods
/**
* Create a put.
* Ownership passes to the caller.
*/
HBASE_API int32_t hb_put_create(hb_put_t * put_ptr);
/**
* Create a delete
* Ownership passes to the caller.
*/
HBASE_API int32_t hb_delete_create(hb_delete_t * delete_ptr);
/**
* Create an increment
* Ownership passes to the caller.
*/
HBASE_API int32_t hb_increment_create(hb_increment_t * increment_ptr);
/**
* Create an append
* Ownership passes to the caller.
*/
HBASE_API int32_t hb_append_create(hb_append_t * append_ptr);
/**
* Destroy the mutation.
* All internal structures are cleaned up. However any backing
* data structures passed in by the user are not cleaned up.
*/
HBASE_API int32_t hb_mutation_destroy(hb_mutation_t mutation);
// Shared setters.
HBASE_API int32_t hb_mutation_set_namespace(hb_mutation_t mutation,
char * name_space, size_t name_space_length);
HBASE_API int32_t hb_mutation_set_table(hb_mutation_t mutation,
char * table, size_t table_length);
HBASE_API int32_t hb_mutation_set_row(hb_mutation_t mutation,
unsigned char * rk, size_t row_length);
HBASE_API int32_t hb_mutation_set_durability(hb_mutation_t mutation,
hb_durability_type durability);
// Put Setters etc.
HBASE_API int32_t hb_put_add_cell(hb_put_t put, hb_cell_t * cell);
// Delete
HBASE_API int32_t hb_delete_add_col(hb_increment_t incr,
unsigned char * family, size_t family_length,
unsigned char * qual, size_t qual_length);
// Increment
HBASE_API int32_t hb_increment_add_value(hb_increment_t incr,
unsigned char * family, size_t family_length,
unsigned char * qual, size_t qual_length,
int64_t ammount);
// Append
HBASE_API int32_t hb_append_add_cell(hb_append_t put, hb_cell_t * cell);
// Now that the mutations are created and populated
// The real meat of the client is below.
/*
* mutation call back typedef
*/
typedef void (* hb_mutation_cb)(int32_t status,
hb_client_t client, hb_mutation_t mutation,
hb_result_t result, void * extra);
/*
* Queue a single mutation. This mutation will be
* sent out in the background and can be batched with
* other requests destined for the same server.
*
* The call back will be executed after the response
* is received from the RegionServer. Even if the
* mutation was batched with other requests,
* the call back will be invoked for every mutation
* individually.
*/
HBASE_API int32_t hb_mutation_send(hb_client_t client,
hb_mutation_t mutation, hb_mutation_cb cb,
void * extra);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // ASYNC_HBASE_MUTATIONS_H_

View File

@ -1,37 +0,0 @@
/*
* 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.
*
*/
#include "async/hbase_result.h"
#include "core/hbase_types.h"
int32_t hb_result_get_cells(hb_result_t result,
hb_cell_t ** cell_ptr, size_t * num_cells) {
return 0;
}
int32_t hb_result_get_table(hb_result_t result,
char ** table, size_t * table_length) {
return 0;
}
int32_t hb_result_get_namespace(hb_result_t result,
char ** name_space, size_t * name_space_length) {
return 0;
}

View File

@ -1,44 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_RESULT_H_
#define ASYNC_HBASE_RESULT_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
HBASE_API int32_t hb_result_destroy(hb_result_t result);
HBASE_API int32_t hb_result_get_cells(hb_result_t result,
hb_cell_t ** cell_ptr, size_t * num_cells);
HBASE_API int32_t hb_result_get_table(hb_result_t result,
char ** table, size_t * table_length);
HBASE_API int32_t hb_result_get_namespace(hb_result_t result,
char ** name_space, size_t * name_space_length);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // ASYNC_HBASE_RESULT_H_

View File

@ -1,59 +0,0 @@
/*
* 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.
*
*/
#include "async/hbase_scanner.h"
#include <stdlib.h>
#include "core/hbase_types.h"
#include "core/scanner.h"
int32_t hb_scanner_create(hb_scanner_t * scanner_ptr) {
(*scanner_ptr) = reinterpret_cast<hb_scanner_t>(new Scanner());
return (*scanner_ptr != NULL)?0:1;
}
HBASE_API int32_t hb_scanner_set_table(hb_scanner_t scanner,
char * table, size_t table_length) {
return 0;
}
HBASE_API int32_t hb_scanner_set_namespace(hb_scanner_t scanner,
char * name_space, size_t name_space_length) {
return 0;
}
int32_t hb_scanner_set_start_row(hb_scanner_t scanner,
unsigned char * start_row, size_t start_row_length) {
return 0;
}
int32_t hb_scanner_set_end_row(hb_scanner_t scanner,
unsigned char * end_row, size_t end_row_length) {
return 0;
}
int32_t hb_scanner_set_cache_size(hb_scanner_t scanner,
size_t cache_size) {
return 0;
}
int32_t hb_scanner_set_num_versions(hb_scanner_t scanner,
int8_t num_versions) {
return 0;
}

View File

@ -1,80 +0,0 @@
/*
* 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.
*
*/
#ifndef ASYNC_HBASE_SCANNER_H_
#define ASYNC_HBASE_SCANNER_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "async/hbase_result.h"
#include "core/hbase_types.h"
HBASE_API int32_t hb_scanner_create(hb_scanner_t * scanner_ptr);
HBASE_API int32_t hb_scanner_set_table(hb_scanner_t scanner,
char * table, size_t table_length);
HBASE_API int32_t hb_scanner_set_namespace(hb_scanner_t scanner,
char * name_space, size_t name_space_length);
HBASE_API int32_t hb_scanner_set_start_row(hb_scanner_t scanner,
unsigned char * start_row, size_t start_row_length);
HBASE_API int32_t hb_scanner_set_end_row(hb_scanner_t scanner,
unsigned char * end_row, size_t end_row_length);
HBASE_API int32_t hb_scanner_set_cache_size(hb_scanner_t scanner,
size_t cache_size);
HBASE_API int32_t hb_scanner_set_batch_size(hb_scanner_t scanner,
size_t batch_size);
HBASE_API int32_t hb_scanner_set_num_versions(hb_scanner_t scanner,
int8_t num_versions);
/*
* Scanner call back typedef.
*
* This will be called when initinalization of the scanner
* is complete. It will also be called when scanner next
* returns results.
*/
typedef void (* hb_scanner_cb)(int32_t status,
hb_client_t client,
hb_scanner_t scanner,
hb_result_t results,
size_t num_results,
void * extra);
/*
* Get the next results from the scanner
*/
HBASE_API int32_t hb_scanner_next(hb_client_t client,
hb_scanner_t scanner, hb_scanner_cb cb, void * extra);
/*
* Close the scanner releasing any local and server side
* resources held. The call back is fired just before the
* scanner's memory is freed.
*/
HBASE_API int32_t hb_scanner_destroy(hb_client_t client,
hb_scanner_t scanner, hb_scanner_cb cb, void * extra);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // ASYNC_HBASE_SCANNER_H_

View File

@ -1,102 +0,0 @@
/*
* 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.
*
*/
#include <pthread.h>
#include "gtest/gtest.h"
#include "async/hbase_mutations.h"
#include "async/hbase_client.h"
pthread_cond_t cv;
pthread_mutex_t mutex;
bool sent = false;
TEST(ClientTest, EasyTest) {
EXPECT_EQ(1, 1);
}
void mutate_cb(int32_t status,
hb_client_t client, hb_mutation_t mutation,
hb_result_t result, void * extra) {
// Test Stuff.
EXPECT_EQ(status, 0);
EXPECT_TRUE(client != NULL);
EXPECT_TRUE(mutation != NULL);
pthread_mutex_lock(&mutex);
sent = true;
pthread_cond_signal(&cv);
pthread_mutex_unlock(&mutex);
}
void wait_send() {
pthread_mutex_lock(&mutex);
while (!sent) {
pthread_cond_wait(&cv, &mutex);
}
pthread_mutex_unlock(&mutex);
}
TEST(MutationTest, TestPut) {
char tn[] = "T1";
hb_byte_t row[] = "ROW";
char fam[] = "D";
hb_byte_t qual[] = "QUAL";
hb_byte_t data[] = "Z";
hb_client_t client = NULL;
hb_put_t put = NULL;
hb_cell_t cell;
cell.family = fam;
cell.family_length = 1;
cell.qual = qual;
cell.qual_length = 4;
cell.value = data;
cell.value_length = 1;
int32_t status = -1;
status = hb_client_create(&client, NULL);
EXPECT_EQ(0, status);
hb_put_create(&put);
hb_mutation_set_table((hb_mutation_t) put, tn, 2);
hb_mutation_set_row((hb_mutation_t) put, row, 3);
hb_put_add_cell(put, &cell);
pthread_cond_init(&cv, NULL);
pthread_mutex_init(&mutex, NULL);
status = hb_mutation_send(client, (hb_mutation_t) put, &mutate_cb, NULL);
EXPECT_EQ(0, status);
// Now wait a while for things to send.
wait_send();
EXPECT_EQ(true, sent);
hb_mutation_destroy((hb_mutation_t *) put);
hb_client_destroy(client, NULL, NULL);
EXPECT_EQ(0, status);
}

View File

@ -1,31 +0,0 @@
# 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.
set( CORE_SRC
admin.cc
client.cc
connection.cc
get.cc
mutation.cc
put.cc
delete.cc
scanner.cc
hbase_connection_attr.cc
)
add_library(hcore OBJECT ${CORE_SRC})

View File

@ -1,20 +0,0 @@
/*
* 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.
*
*/
#include "core/admin.h"

View File

@ -1,25 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_ADMIN_H_
#define CORE_ADMIN_H_
class Admin {
};
#endif // CORE_ADMIN_H_

View File

@ -1,20 +0,0 @@
/*
* 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.
*
*/
#include "core/client.h"

View File

@ -1,25 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_CLIENT_H_
#define CORE_CLIENT_H_
class Client {
};
#endif // CORE_CLIENT_H_

View File

@ -1,22 +0,0 @@
/*
* 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.
*/
#include "core/connection.h"
void Connection::set_zk_quorum(char * zk_q) {
this->zk_quorum = zk_q;
}

View File

@ -1,26 +0,0 @@
/*
* 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.
*/
#ifndef CORE_CONNECTION_H_
#define CORE_CONNECTION_H_
class Connection {
char * zk_quorum;
public:
void set_zk_quorum(char * zk_q);
};
#endif // CORE_CONNECTION_H_

View File

@ -1,30 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_CONNECTION_ATTR_H_
#define CORE_CONNECTION_ATTR_H_
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
class ConnectionAttr {
};
#endif // CORE_CONNECTION_ATTR_H_

View File

@ -1,22 +0,0 @@
/*
* 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.
*/
#include "core/delete.h"
Delete::~Delete() {
}

View File

@ -1,29 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_DELETE_H_
#define CORE_DELETE_H_
#include "core/mutation.h"
class Delete: public Mutation {
public:
~Delete();
};
#endif // CORE_DELETE_H_

View File

@ -1,20 +0,0 @@
/*
* 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.
*
*/
#include "core/get.h"

View File

@ -1,26 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_GET_H_
#define CORE_GET_H_
class Get {
};
#endif // CORE_GET_H_

View File

@ -1,41 +0,0 @@
/*
* 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.
*
*/
#include "core/hbase_connection_attr.h"
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
#include "core/connection_attr.h"
extern "C" {
int32_t hb_connection_attr_create(hb_connection_attr_t * attr_ptr) {
(*attr_ptr) = new ConnectionAttr();
return (attr_ptr == NULL)?-1:0;
}
int32_t hb_connection_attr_set_zk_quorum(hb_connection_t connection,
char * zk_quorum) {
return 0;
}
int32_t hb_connection_attr_set_zk_root(hb_connection_t connection,
char * zk_root) {
return 0;
}
}

View File

@ -1,51 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_HBASE_CONNECTION_ATTR_H_
#define CORE_HBASE_CONNECTION_ATTR_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
#include <stdlib.h>
HBASE_API int32_t hb_connection_attr_create(hb_connection_attr_t * attr_ptr);
/**
* Set the zk quorum of a connection that will be created.
*/
HBASE_API int32_t hb_connection_attr_set_zk_quorum(hb_connection_t connection,
char * zk_quorum);
/**
* Set the zk root of a connection that will be created.
*/
HBASE_API int32_t hb_connection_attr_set_zk_root(hb_connection_t connection,
char * zk_root);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // CORE_HBASE_CONNECTION_ATTR_H_

View File

@ -1,60 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_HBASE_MACROS_H_
#define CORE_HBASE_MACROS_H_
#ifdef __cplusplus
extern "C" {
#endif
/**
* The following code block define API as the tag for exported
* functions. The library should be compiled with symbols visibility
* set to hidden by default and only the exported functions should be
* tagged as HBASE_API.
*
* When building the library on Windows, compile with compiler flag
* "-D_LIBHBASE_IMPLEMENTATION_", whereas when linking application with
* this library, this compiler flag should not be used.
*/
#if defined _WIN32 || defined __CYGWIN__
#ifdef _LIBHBASE_IMPLEMENTATION_
#define API __declspec(dllexport)
#else
#ifdef _LIBHBASE_TEST_
#define HBASE_API
#else
#define HBASE_API __declspec(dllimport)
#endif
#endif
#else
#if __GNUC__ >= 4
#define HBASE_API __attribute__ ((visibility ("default")))
#else
#define HBASE_API
#endif
#endif
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // CORE_HBASE_MACROS_H_

View File

@ -1,83 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_HBASE_TYPES_H_
#define CORE_HBASE_TYPES_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include <stddef.h>
typedef unsigned char hb_byte_t;
/*
* Base kv type.
*/
typedef struct {
hb_byte_t* row;
size_t row_length;
char * family;
size_t family_length;
hb_byte_t* qual;
size_t qual_length;
hb_byte_t* value;
size_t value_length;
uint64_t timestamp;
} hb_cell_t;
typedef enum {
DELETE_ONE_VERSION,
DELETE_MULTIPLE_VERSIONS,
DELETE_FAMILY,
DELETE_FAMILY_VERSION
} hb_delete_type;
typedef enum {
USE_DEFAULT,
SKIP_WAL,
ASYNC_WAL,
SYNC_WAL,
HSYNC_WAL
} hb_durability_type;
typedef void* hb_admin_t;
typedef void* hb_client_t;
typedef void* hb_connection_attr_t;
typedef void* hb_connection_t;
typedef void* hb_get_t;
typedef void* hb_mutation_t;
typedef void* hb_put_t;
typedef void* hb_delete_t;
typedef void* hb_increment_t;
typedef void* hb_append_t;
typedef void* hb_result_t;
typedef void* hb_scanner_t;
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // CORE_HBASE_TYPES_H_

View File

@ -1,42 +0,0 @@
/*
* 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.
*
*/
#include "core/mutation.h"
void Mutation::set_namespace(char * name_space, size_t name_space_length) {
this->name_space = name_space;
this->name_space_length = name_space_length;
}
void Mutation::set_table(char * table, size_t table_length) {
this->table = table;
this->table_length = table_length;
}
void Mutation::set_row(unsigned char * row, size_t row_length) {
this->row = row;
this->row_length = row_length;
}
void Mutation::set_durability(hb_durability_type durability) {
this->durability = durability;
}
Mutation::~Mutation() {
}

View File

@ -1,48 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_MUTATION_H_
#define CORE_MUTATION_H_
#include <stdlib.h>
#include "core/hbase_types.h"
class Mutation {
char * name_space;
size_t name_space_length;
char * table;
size_t table_length;
unsigned char * row;
size_t row_length;
hb_durability_type durability;
public:
void set_namespace(char * name_space, size_t name_space_length);
void set_table(char * table, size_t table_length);
void set_row(unsigned char * row, size_t row_length);
void set_durability(hb_durability_type durability);
virtual ~Mutation();
};
#endif // CORE_MUTATION_H_

View File

@ -1,22 +0,0 @@
/*
* 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.
*/
#include "core/put.h"
Put::~Put() {
}

View File

@ -1,29 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_PUT_H_
#define CORE_PUT_H_
#include "core/mutation.h"
class Put: public Mutation {
public:
~Put();
};
#endif // CORE_PUT_H_

View File

@ -1,20 +0,0 @@
/*
* 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.
*
*/
#include "core/scanner.h"

View File

@ -1,25 +0,0 @@
/*
* 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.
*
*/
#ifndef CORE_SCANNER_H_
#define CORE_SCANNER_H_
class Scanner {
};
#endif // CORE_SCANNER_H_

View File

@ -1,17 +0,0 @@
# 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.

View File

@ -1,24 +0,0 @@
# 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.
set( SYNC_SRC
hbase_connection.cc
hbase_admin.cc
)
add_library(hsync OBJECT ${SYNC_SRC})

View File

@ -1,51 +0,0 @@
/*
* 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.
*
*/
#include "sync/hbase_admin.h"
#include <stdlib.h>
#include <stdbool.h>
#include "core/admin.h"
int32_t hb_admin_create(hb_admin_t** admin_ptr) {
(*admin_ptr) = reinterpret_cast<hb_admin_t *>(new Admin());
return 0;
}
/*
* Disconnect the admin releasing any internal objects
* or connections created in the background.
*/
int32_t hb_admin_destroy(hb_admin_t * admin) {
Admin * adm = reinterpret_cast<Admin *>(admin);
delete adm;
return 0;
}
/*
* See if a table exists.
*/
int32_t hb_admin_table_exists(hb_admin_t * admin,
char * name_space, size_t name_space_length,
char * table, size_t table_length,
bool * exists) {
*exists = true;
return 0;
}

View File

@ -1,61 +0,0 @@
/*
* 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.
*
*/
#ifndef SYNC_HBASE_ADMIN_H_
#define SYNC_HBASE_ADMIN_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdlib.h>
#include <stdbool.h>
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
#include "sync/hbase_connection.h"
/**
* Create a new hb_admin.
* All fields are initialized to the defaults. If you want to set
* connection or other properties, set those before calling any
* RPC functions.
*/
HBASE_API int32_t hb_admin_create(hb_admin_t* admin_ptr,
hb_connection_t connection);
/*
* Disconnect the admin releasing any internal objects
* or connections created in the background.
*/
HBASE_API int32_t hb_admin_destroy(hb_admin_t admin);
/*
* See if a table exists.
*/
HBASE_API int32_t hb_admin_table_exists(hb_admin_t admin,
char * name_space, size_t name_space_length,
char * table, size_t table_length, bool * exists);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // SYNC_HBASE_ADMIN_H_

View File

@ -1,37 +0,0 @@
/*
* 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.
*
*/
#include "sync/hbase_connection.h"
#include "core/connection.h"
#include "core/hbase_types.h"
extern "C" {
int32_t hb_connection_create(hb_connection_t * connection_ptr,
hb_connection_attr_t connection_attr) {
(*connection_ptr) = reinterpret_cast<hb_connection_t>(new Connection());
if ((*connection_ptr) == NULL)
return -1;
return 0;
}
int32_t hb_connection_destroy(hb_connection_t connection) {
free(connection);
return 0;
}
} // extern "C"

View File

@ -1,52 +0,0 @@
/*
* 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.
*
*/
#ifndef SYNC_HBASE_CONNECTION_H_
#define SYNC_HBASE_CONNECTION_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "core/hbase_macros.h"
#include "core/hbase_types.h"
#include "core/hbase_connection_attr.h"
#include <stdlib.h>
/**
* Create an hb_connection.
*
* if connection_attr is null everything will be left as default
*/
HBASE_API int32_t hb_connection_create(hb_connection_t * connection_ptr,
hb_connection_attr_t connection_attr);
/**
* Destroy the connection and free all resources allocated at creation
* time.
*/
HBASE_API int32_t hb_connection_destroy(hb_connection_t connection);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus
#endif // SYNC_HBASE_CONNECTION_H_