Commit f39b9030 authored by Greg Williams's avatar Greg Williams
Browse files

Merge branch 'release/0.9.0'

parents 958c82cc cc0736b8
Loading
Loading
Loading
Loading
+25 −3
Original line number Diff line number Diff line
@@ -10,8 +10,9 @@ PUB_INC = ./include
#===============================================================================
CC ?= gcc
OPTIMIZE = -O3
WARN = -Wall -Wextra -Wstrict-prototypes -Wcast-align -pedantic -Wno-missing-field-initializers
CDEFS += -D_POSIX_C_SOURCE=199309L -D_C99_SOURCE=1
SYSTEM_TEST_HOST ?= \"localhost\"
WARN = -Wall -Wextra -Wstrict-prototypes -Wcast-align -pedantic -Wno-missing-field-initializers -Werror=strict-prototypes
CDEFS += -D_POSIX_C_SOURCE=199309L -D_C99_SOURCE=1 -DSYSTEM_TEST_HOST=${SYSTEM_TEST_HOST}
CFLAGS += -std=c99 -fPIC -g $(WARN) $(CDEFS) $(OPTIMIZE)
LDFLAGS += -lm -lcrypto -lssl -lpthread

@@ -70,7 +71,7 @@ all: default test run examples
clean: makedirs
	rm -rf ./bin/**/*
	rm -f $(OUT_DIR)/*.o *.core *.log
	rake clobber
	bundle exec rake clobber
	git submodule update --init
	-./vendor/kinetic-simulator/stopSimulator.sh &> /dev/null;

@@ -97,6 +98,8 @@ $(OUT_DIR)/protobuf-c.o: $(PROTOBUFC)/protobuf-c/protobuf-c.c $(PROTOBUFC)/proto
	$(CC) -c -o $@ $< -std=c99 -fPIC -g -Wall -Wno-unused-parameter $(OPTIMIZE) -I$(PROTOBUFC)
${OUT_DIR}/kinetic_types.o: ${LIB_DIR}/kinetic_types_internal.h

${OUT_DIR}/*.o: src/lib/kinetic_types_internal.h


ci: uninstall all install
	@echo
@@ -256,6 +259,8 @@ run: $(UTIL_EXEC) start_simulator
EXAMPLE_SRC = ./src/examples
EXAMPLE_LDFLAGS += -lm -l ssl $(KINETIC_LIB) -l crypto -l pthread
EXAMPLES = write_file_blocking
VALGRIND = valgrind
VALGRIND_ARGS = --track-origins=yes #--leak-check=full

example_sources = $(wildcard $(EXAMPLE_SRC)/*.c)
example_executables = $(patsubst $(EXAMPLE_SRC)/%.c,$(BIN_DIR)/examples/%,$(example_sources))
@@ -294,6 +299,15 @@ run_example_%: $(BIN_DIR)/examples/%
	@echo ================================================================================
	@echo

valgrind_example_%: $(BIN_DIR)/examples/%
	@echo
	@echo ================================================================================
	@echo Executing example: '$<'
	@echo --------------------------------------------------------------------------------;
	${VALGRIND} ${VALGRIND_ARGS} $<
	@echo ================================================================================
	@echo

setup_examples: $(example_executables) \
	build_examples

@@ -304,3 +318,11 @@ examples: setup_examples \
	run_example_write_file_nonblocking \
	run_example_write_file_nonblocking_threads \
	stop_simulator

valgrind_examples: setup_examples \
	start_simulator \
	valgrind_example_write_file_blocking \
	valgrind_example_write_file_blocking_threads \
	valgrind_example_write_file_nonblocking \
	valgrind_example_write_file_nonblocking_threads \
	stop_simulator
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ Getting Started

**Clone the repo**

    > git clone --recursive https://github.com/atomicobject/kinetic-c.git
    > git clone --recursive https://github.com/seagate/kinetic-c.git
    > cd kinetic-c
    > bundle install # ensure you have all RubyGems at the proper versions

+38 −29
Original line number Diff line number Diff line
v0.5.0
------
* Added blocking PUT operation
v0.9.0 (kinetic-protocol 3.0.5)
-------------------------------
* Changed API to use a `KineticSession` with a pointer to private session/connection info in place of the old `KineticSessionHandle`.
* Added `FLUSHALLDATA` operation via `KineticClient_Flush()`
* Added `GETPREVIOUS`/`GETNEXT` operations via `KineticClient_GetPrevious()`/`KineticClient_GetNext()`
* Replaced `KinticClient_Connect()`/`Disconnect()` with `KineticClient_CreateConnection()`/`DestroyConnection()`, since the connection structure is dynamically allocated and populated in the provided `KineticSession`. `KineticClient_DestroyConnection()` MUST be called on the an established `KineticSession` in order to shutdown the connection and free up resources.
* Added initial implementation of PEER2PEERPUSH which does NOT yet support chaining via KineticClient_P2POperation().
* Fixed bug with mutex locking causing an assert failure and subsequent crash.
* Fixed leaking of destroyed connections and they are now properly freed upon call to KineticClient_DestoryConnection().
* Fixed bug where some unrecoverable socket errors could cause retries when unintended.

v0.6.0
------
* Added blocking GET and DELETE operations.
* Added Makefile build implementing standard (make; sudo make install) interface.
* Added creation/installation of static (.a) and dynamic (.so) libraries
* Added ByteArray type for buffer management.
* Added Kinetic_KeyValue type for key/value pair handling.

v0.7.0
------
* Added blocking GETKEYRANGE operation.
v0.8.1 (kinetic-protocol 3.0.5)
-------------------------------
* Added `GETLOG` operation.
* Added thread-safety to allow multiple client threads within the same session.
* Added I/O examples to demonstrate client write operations for blocking/non-blocking (asynchrounous) and single/multi-threaded.

v0.8.0
------
* Updated to use Kinetic Protocol v3.0 (3.0.5)
    * NOT backwards compatible with earlier versions of Kinetic Protocol
    * Kinetic device firmware must be updated to a release supporting v3.0 protocol!
* Added asynchronous/non-blocking execution option to all operations (GET/PUT/DELETE/GETKEYRANGE).
v0.8.0 (kinetic-protocol 3.0.5)
-------------------------------
* **Updated to use Kinetic Protocol v3.0 (3.0.5)**
    * **NOT backwards compatible with earlier versions of Kinetic Protocol**
    * **Kinetic device firmware must be updated to a release supporting v3.0 protocol!**
* Added asynchronous/non-blocking execution option to all operations (`GET`/`PUT`/`DELETE`/`GETKEYRANGE`).
    * A given operation is carried out in asynchronous mode if a closure callback with optional data is supplied.
* ByteArray and ByteBuffer types are now supplied directly in the byte_array.h public interface file.
* `ByteArray` and `ByteBuffer` types are now supplied directly in the `byte_array.h` public interface file.
* Fixed a concurrency issue that intermittently produces a crash in `kinetic_allocator` in a threaded context

v0.8.1
------
* Added GETLOG operation.
* Added InstantSecureErase operation.
* Added thread-safety to allow multiple client threads within the same session.
* Still using Kinetic Protocol v3.0 (3.0.5)
    * NOT backwards compatible with earlier versions of Kinetic Protocol (< v3.0)
    * Kinetic device firmware must be updated to a release supporting v3.0 protocol!
v0.7.0 (kinetic-protocol 2.0.6)
-------------------------------
* Added blocking `GETKEYRANGE` operation.

v0.6.0 (kinetic-protocol 2.0.6)
-------------------------------
* Added blocking `GET` and `DELETE` operations.
* Added Makefile build implementing standard (make; sudo make install) interface.
* Added creation/installation of static (.a) and dynamic (.so) libraries
* Added `ByteArray` type for buffer management.
* Added `Kinetic_KeyValue` type for key/value pair handling.

v0.5.0 (kinetic-protocol 2.0.4)
-------------------------------
* Added blocking `PUT` operation
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ compiler = ENV.fetch('CC', 'gcc')
compiler_location = `which #{compiler}`.strip
compiler_info = `#{compiler} --version 2>&1`.strip

SYSTEM_TEST_HOST = ENV.fetch('SYSTEM_TEST_HOST', "localhost")

task :report_toolchain do
  report_banner("Toolchain Configuration")
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ PROJECT_NAME = kinetic-c
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER           = "v0.8.1"
PROJECT_NUMBER           = "v0.9.0"

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Loading