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

Added a starter test project to experiment with generated Kinetic protocol buffers

parent 961d3b62
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -21,3 +21,5 @@
*.i*86
*.x86_64
*.hex

bin/

Makefile

0 → 100644
+43 −0
Original line number Diff line number Diff line
OUT_DIR = obj
BIN_DIR = bin
OBJS = $(OUT_DIR)/protobuf-c.o $(OUT_DIR)/KineticProto.o $(OUT_DIR)/kinetic-c-client.o
INCS = -I"./include" -I"./src/main" -I"./src/vendor"
BIN = $(BIN_DIR)/kinetic-c-client
CC = gcc
CFLAGS = $(INCS) -g -Wall
LFLAGS = -Wall
MKDIRS = mkdir -p
RM_ALL = rm -rf

.PHONY: directories run

build: directories $(BIN)

all: clean build run

directories: $(OUT_DIR) $(BIN_DIR)

$(OUT_DIR):
	$(MKDIRS) $(OUT_DIR)

$(BIN_DIR):
	$(MKDIRS) $(BIN_DIR)

clean:
	$(RM_ALL) $(OBJS) $(OUT_DIR) $(BIN)

$(OUT_DIR)/protobuf-c.o: directories ./src/vendor/protobuf-c/protobuf-c.h ./src/vendor/protobuf-c/protobuf-c.c
	$(CC) $(CFLAGS) -c ./src/vendor/protobuf-c/protobuf-c.c -o $@

$(OUT_DIR)/KineticProto.o: directories ./src/main/KineticProto.h ./src/main/KineticProto.c ./src/vendor/protobuf-c/protobuf-c.h ./src/vendor/protobuf-c/protobuf-c.c
	$(CC) $(CFLAGS) -c ./src/main/KineticProto.c -o $@

$(OUT_DIR)/kinetic-c-client.o: directories ./src/main/main.c ./src/main/KineticProto.h ./src/main/KineticProto.c ./src/vendor/protobuf-c/protobuf-c.h ./src/vendor/protobuf-c/protobuf-c.c
	$(CC) $(CFLAGS) -c ./src/main/main.c -o $@

$(BIN): $(OBJS)
	$(CC) $(LFLAGS) $(OBJS) -o $(BIN)

run:
	@echo=off; echo "\nRunning Executable $(BIN):"
	./$(BIN)
+3 −1
Original line number Diff line number Diff line
@@ -29,7 +29,9 @@
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "kinetic.pb-c.h"
#include "KineticProto.h"


void KineticProto_command__init(KineticProto_Command* message)
{
    static KineticProto_Command init_value = KINETIC_PROTO_COMMAND__INIT;

src/main/main.c

0 → 100644
+61 −0
Original line number Diff line number Diff line
#include <stdio.h>
#include "KineticProto.h"

#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif

int main(int argc, char** argv)
{
    size_t i, j;
    size_t len;
    KineticProto proto;
    KineticProto_Command cmd;
    KineticProto_Header header;

    uint8_t buffer[1024];

    KineticProto_init(&proto);
    KineticProto_command__init(&cmd);
    KineticProto_header__init(&header);

    printf ("Seagate Kinetic Protocol C Client Test Utility\n\n");

    printf("KineticProto:\n");
    printf("  size: %lu\n", sizeof(proto));

    printf("  pre-packed size: %lu\n", KineticProto_get_packed_size(&proto));

    header.clusterversion = 12345678;
    header.has_clusterversion = TRUE;
    header.identity = -12345678;
    header.has_identity = TRUE;
    cmd.header = &header;
    proto.command = &cmd;

    printf("  estimated packed size: %lu\n", KineticProto_get_packed_size(&proto));

    len = KineticProto_pack(&proto, buffer);
    printf("  actual packed size: %lu\n", len);

    assert(KineticProto_get_packed_size(&proto) == len);

    printf("  buffer contents:\n");
    for (i = 0; i < len; i++)
    {
        printf("    ");
        for (j = 0; j < 8; j++, i++)
        {
            if (i < len)
            {
                printf("%02X ", buffer[i]);
            }
        }
        printf("\n");
    }

	return 0;
}
+3251 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading